Size: 1182 bytes.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// cs/ai/neural_net.hh
#ifndef CS_AI_NEURAL_NET_HH
#define CS_AI_NEURAL_NET_HH

#include <vector>

namespace cs::ai {

// Neural network class
class NeuralNet {
 public:
  NeuralNet(unsigned int input_size,
            unsigned int hidden_size,
            unsigned int output_size)
      : input_size(input_size),
        hidden_size(hidden_size),
        output_size(output_size) {
    init_weights();
  }

  std::vector<float> forward(
      const std::vector<float>& input);

  void train(const std::vector<std::vector<float>>& inputs,
             const std::vector<std::vector<float>>& labels,
             unsigned int epochs = 5, float lr = 0.1);

  float test(
      const std::vector<std::vector<float>>& test_inputs,
      const std::vector<int>& test_labels);

  float evaluate(
      const std::vector<std::vector<float>>& inputs,
      const std::vector<int>& true_labels,
      bool verbose = false);

  unsigned int input_size, hidden_size, output_size;
  std::vector<std::vector<float>> weights1, weights2;
  std::vector<float> biases1, biases2;
  std::vector<float> z1, a1, z2, a2;

  void init_weights();
};

}  // namespace cs::ai

#endif  // CS_AI_NEURAL_NET_HH
v0 (commit) © 2025 @p13i.io | Load balancer proxied to: cs-code-viewer-2:8080 in 4ms.