【发布时间】:2021-01-12 05:23:57
【问题描述】:
最近我一直在尝试使用 arduino 库创建神经网络,我遇到了一个库,字面意思是,George Cousos 称为 Neural Network。我偶然发现了几个错误,我设法很简单地修复了这些错误,但后来我发现了
sketch_sep22b:24:43: error: incompatible types in assignment of 'float*' to 'float [4]' outputs = NN.FeedForward(inputs[i]);
这是我所有的代码:
#include <math.h> // Include Math Library
#include <NeuralNetwork.h> // Include Neural Network Framework
const unsigned int layers[] = {4, 9, 4}; // First Value (Inputs), Second Value (Neurons / Hidden Layers), Third Value (Outputs)
float outputs[4] = {}; //Outputs Float
const float* /* Pointer */ inputs[1] = {1};
const float expectedOutputs[1] = {1}; //Training Values
void setup()
{
Serial.begin(9600);
NeuralNetwork NN(layers, NumberOf(layers));
for (int i = 0; i < 3000; i++)
{
for (int j = 0; j < NumberOf(inputs); j++)
{
for (int i = 0; i < NumberOf(inputs) - 1; i++)
{
outputs = NN.FeedForward(inputs[i]);
Serial.println(outputs[0], 7);
}
NN.print();
}
}
}
编辑:
FeedForward 的声明是:
float *FeedForward(const float *inputs); // Moves Calculated outputs as inputs to next layer.
【问题讨论】:
-
你能发布 NeuralNetwork::FeedForward 的声明吗?
-
您不能只将指针复制到带有
=的指针,您需要使用memcpy之类的东西,或者更好的是,利用C++ 标准库并使用std::vector,如果您可以。 -
您永远不能分配给数组。他们太愚蠢了。您必须分配给元素。
-
"const float 预期输出[1] = {1};"只有一个元素的数组有什么意义?为什么要把它做成一个数组?
-
@Delta_G 这只是暂时的,我正在为神经网络收集数据,我只是还没有。
标签: c++ arrays neural-network arduino backpropagation