基于arduino的双层人工神经网络
2022-11-19279
AI 快速预览详细
本文介绍了如何在Arduino上实现一个简单的双层人工神经网络。使用线性激活函数y=1*x和学习率0.1,训练目标为t=6*x。通过详细的代码示例,读者可以了解神经网络的基本概念,并在Arduino上进行实际操作。适合初学者入门神经网络编程。
最近我看了一些关于神经网络的书,我觉得可以在arduino上运行一下。有兴趣的朋友可以去看一些入门书籍。激活函数我选的是y=1*x的线性函数,学习率是0.1,是单个神经元的,它的训练目标是t=6*x。
代码
/*!
* MindPlus
* uno
*
*/
// 动态变量
volatile float mind_n_my_float_variable, mind_n_e, mind_n_g, mind_n_w, mind_n_x,
mind_n_y, mind_n_l;
// 主程序开始
void setup() {
dfrobotRandomSeed();
Serial.begin(9600);
mind_n_my_float_variable = 0;
mind_n_e = 0;
mind_n_g = 0;
mind_n_w = 0.1;
mind_n_x = 0;
mind_n_y = 0;
mind_n_l = 0.1;
mind_n_g = (mind_n_w * mind_n_x);
mind_n_y = mind_n_g;
for (int index = 0; index < 10; index++) {
mind_n_x = mind_n_my_float_variable;
mind_n_g = (mind_n_w * mind_n_x);
mind_n_y = mind_n_g;
mind_n_e = ((6 * mind_n_my_float_variable) - mind_n_y);
mind_n_w += ((mind_n_l * mind_n_e) * 1);
mind_n_my_float_variable = (random(0, 100+1));
Serial.println(mind_n_w);
}
mind_n_x = 20;
mind_n_g = (mind_n_w * mind_n_x);
mind_n_y = mind_n_g;
Serial.println(mind_n_y);
}
void loop() {
}
附件





