您好,我正在用 C++ 编写反向传播算法,它由 1 个输入层、1 个隐藏层和 1 个输出层组成。我很好奇如何初始化我的输入层、隐藏层和输出层。
这就是我得到的:
struct Neuron {
double activation;
double bias;
double *incomingWeights;
};
struct Network {
double *targetLayer;
Neuron *inputLayer;
Neuron *hiddenLayer;
Neuron *outputLayer;
};
ann.inputLayer = malloc(din * sizeof * Neuron); //ERROR
for (int i = 0; i < din; i++) {
ann.inputLayer[i].activation = 0;
ann.inputLayer[i].bias = 0;
ann.inputLayer[i].incomingWeights = NULL;
}
ann.outputLayer = malloc(dout * sizeof * Neuron); //ERROR
for (int i = 0; i < dout; i++) {
ann.outputLayer[i].activation = 0;
ann.outputLayer[i].bias = 0;
ann.outputLayer[i].incomingWeights = new double[dhid];
}
din 表示我的输入层中的神经元数量。dhid 表示我的隐藏层中的神经元数量。dout 代表我的输出层中的神经元数量。我没有费心展示我的隐藏层的初始化,因为它不重要,谢谢
我在根据我的 IDE(netbeans)显示错误的行上写了 //ERROR