当前位置: 首页 > news >正文

做php网站教程咸阳市网站建设公司

做php网站教程,咸阳市网站建设公司,有哪些网站做二手房好的,东莞长安网站公司一、网络设定 我们设定一个简单的前馈神经网络#xff0c;其结构如下#xff1a; 输入层#xff1a;节点数#xff1a;2#xff0c;接收输入数据#xff0c;每个输入样本包含2个特征#xff0c;例如 {1.0, 0.0}, {0.0, 1.0} 等。 隐藏层#xff1a;节点数#xff1a;…一、网络设定 我们设定一个简单的前馈神经网络其结构如下 输入层节点数2接收输入数据每个输入样本包含2个特征例如 {1.0, 0.0}, {0.0, 1.0} 等。 隐藏层节点数2处理和提取输入数据的特征 激活函数:使用 Sigmoid 激活函数 sigmoid(x) 1 / (1 exp(-x)) 权重矩阵Weights from Input to Hidden float weights_input_hidden[INPUT_NODES][HIDDEN_NODES] {{0.15, 0.25},{0.20, 0.30} }; 这是一个 2x2 的权重矩阵用于连接输入层和隐藏层。 偏置Biases for Hidden Layer float bias_hidden[HIDDEN_NODES] {0.35, 0.35};这是一个包含2个偏置值的数组分别对应每个隐藏层节点。 每个隐藏层节点计算如下 其中 是输入节点值是权重是偏置。 输出层节点数1给出最终的预测结果。 激活函数使用 Sigmoid 激活函数 权重矩阵 float weights_hidden_output[HIDDEN_NODES][OUTPUT_NODES] {{0.40},{0.50} };这是一个 2x1 的权重矩阵用于连接隐藏层和输出层。 偏置 float bias_output[OUTPUT_NODES] {0.60}; 这是一个包含1个偏置值的数组分别对应每个隐藏层节点。输出层节点计算如下其中 是隐藏层节点值是权重 是偏置。 整体网络设定如下图所示 二、Arduino端代码 首先是初始化部分权重和偏置的定义 float weights_input_hidden[INPUT_NODES][HIDDEN_NODES] {{0.15, 0.25},{0.20, 0.30} };float weights_hidden_output[HIDDEN_NODES][OUTPUT_NODES] {{0.40},{0.50} };float bias_hidden[HIDDEN_NODES] {0.35, 0.35}; float bias_output[OUTPUT_NODES] {0.60};接着前向传播通过计算每一层的加权输入和激活输出来推断输入样本的预测值。 void forward_propagation(float input[]) {for (int i 0; i INPUT_NODES; i) {input_layer[i] input[i];}for (int j 0; j HIDDEN_NODES; j) {hidden_layer[j] 0;for (int i 0; i INPUT_NODES; i) {hidden_layer[j] input_layer[i] * weights_input_hidden[i][j];}hidden_layer[j] bias_hidden[j];hidden_layer[j] sigmoid(hidden_layer[j]);}for (int k 0; k OUTPUT_NODES; k) {output_layer[k] 0;for (int j 0; j HIDDEN_NODES; j) {output_layer[k] hidden_layer[j] * weights_hidden_output[j][k];}output_layer[k] bias_output[k];output_layer[k] sigmoid(output_layer[k]);} }最后反向传播通过计算误差并根据误差调整权重和偏置以最小化损失函数。 void backward_propagation(float input[], float target) {float output_error target - output_layer[0];float output_delta output_error * sigmoid_derivative(output_layer[0]);float hidden_error[HIDDEN_NODES];float hidden_delta[HIDDEN_NODES];for (int j 0; j HIDDEN_NODES; j) {hidden_error[j] output_delta * weights_hidden_output[j][0];hidden_delta[j] hidden_error[j] * sigmoid_derivative(hidden_layer[j]);}for (int j 0; j HIDDEN_NODES; j) {weights_hidden_output[j][0] learning_rate * output_delta * hidden_layer[j];}bias_output[0] learning_rate * output_delta;for (int i 0; i INPUT_NODES; i) {for (int j 0; j HIDDEN_NODES; j) {weights_input_hidden[i][j] learning_rate * hidden_delta[j] * input_layer[i];}}for (int j 0; j HIDDEN_NODES; j) {bias_hidden[j] learning_rate * hidden_delta[j];} }定义四组输入样本及其目标输出用于训练神经网络, 通过多次迭代训练神经网络并在每次训练后输出当前的权重和F1-score。完整代码如下: #include Arduino.h #include cmath// 定义神经网络结构 #define INPUT_NODES 2 #define HIDDEN_NODES 2 #define OUTPUT_NODES 1// 定义神经网络参数 float input_layer[INPUT_NODES]; float hidden_layer[HIDDEN_NODES]; float output_layer[OUTPUT_NODES];float weights_input_hidden[INPUT_NODES][HIDDEN_NODES] {{0.15, 0.25},{0.20, 0.30} };float weights_hidden_output[HIDDEN_NODES][OUTPUT_NODES] {{0.40},{0.50} };float bias_hidden[HIDDEN_NODES] {0.35, 0.35}; float bias_output[OUTPUT_NODES] {0.60};float learning_rate 0.1;// 激活函数和其导数sigmoid float sigmoid(float x) {return 1.0 / (1.0 exp(-x)); }float sigmoid_derivative(float x) {return x * (1.0 - x); }// 计算预测值 void forward_propagation(float input[]) {for (int i 0; i INPUT_NODES; i) {input_layer[i] input[i];}for (int j 0; j HIDDEN_NODES; j) {hidden_layer[j] 0;for (int i 0; i INPUT_NODES; i) {hidden_layer[j] input_layer[i] * weights_input_hidden[i][j];}hidden_layer[j] bias_hidden[j];hidden_layer[j] sigmoid(hidden_layer[j]);}for (int k 0; k OUTPUT_NODES; k) {output_layer[k] 0;for (int j 0; j HIDDEN_NODES; j) {output_layer[k] hidden_layer[j] * weights_hidden_output[j][k];}output_layer[k] bias_output[k];output_layer[k] sigmoid(output_layer[k]);} }// 更新权重和偏置 void backward_propagation(float input[], float target) {float output_error target - output_layer[0];float output_delta output_error * sigmoid_derivative(output_layer[0]);float hidden_error[HIDDEN_NODES];float hidden_delta[HIDDEN_NODES];for (int j 0; j HIDDEN_NODES; j) {hidden_error[j] output_delta * weights_hidden_output[j][0];hidden_delta[j] hidden_error[j] * sigmoid_derivative(hidden_layer[j]);}for (int j 0; j HIDDEN_NODES; j) {weights_hidden_output[j][0] learning_rate * output_delta * hidden_layer[j];}bias_output[0] learning_rate * output_delta;for (int i 0; i INPUT_NODES; i) {for (int j 0; j HIDDEN_NODES; j) {weights_input_hidden[i][j] learning_rate * hidden_delta[j] * input_layer[i];}}for (int j 0; j HIDDEN_NODES; j) {bias_hidden[j] learning_rate * hidden_delta[j];} }// 计算F1-score float compute_f1_score(float tp, float fp, float fn) {float precision tp / (tp fp);float recall tp / (tp fn);return 2 * (precision * recall) / (precision recall); }void print_weights() {Serial.println(Weights Input-Hidden:);for (int i 0; i INPUT_NODES; i) {for (int j 0; j HIDDEN_NODES; j) {Serial.printf(w[%d][%d] %f , i, j, weights_input_hidden[i][j]);}Serial.println();}Serial.println(Weights Hidden-Output:);for (int j 0; j HIDDEN_NODES; j) {Serial.printf(w[%d][0] %f , j, weights_hidden_output[j][0]);}Serial.println(); }void setup() {// 初始化串口Serial.begin(115200);while (!Serial) {}// 打印欢迎信息Serial.println(Hello, ESP32 Neural Network with Training!); }void loop() {// 输入样本和目标float input[][INPUT_NODES] {{1.0, 0.0}, {0.0, 1.0}, {1.0, 1.0}, {0.0, 0.0}};float target[] {1.0, 1.0, 0.0, 0.0};// 初始化统计量float tp 0, fp 0, fn 0;// 训练for (int epoch 0; epoch 1000; epoch) {for (int i 0; i 4; i) {forward_propagation(input[i]);backward_propagation(input[i], target[i]);// 更新统计量float prediction output_layer[0] 0.5 ? 1.0 : 0.0;if (prediction 1.0 target[i] 1.0) {tp;} else if (prediction 1.0 target[i] 0.0) {fp;} else if (prediction 0.0 target[i] 1.0) {fn;}}// 打印权重和F1-scoreSerial.printf(Epoch %d\n, epoch);print_weights();float f1_score compute_f1_score(tp, fp, fn);Serial.printf(F1-Score: %f\n, f1_score);// 重置统计量tp 0;fp 0;fn 0;// 延迟一段时间delay(100);}// 停止程序while (true) {} }部分打印结果如下
http://www.hkea.cn/news/14408581/

相关文章:

  • amz123网站排名seo
  • 昭通微网站建设网站被黑了怎么恢复
  • 如何申请电商网站常用的网页编辑软件是什么
  • 开源企业网站内容管理系统在原备案号下增加新网站
  • 做网站怎么签订协议网站建设内容录入论文
  • 在线建站|网页制作|网站建设平台建设购物网站的方案
  • 新的网站平台如何做地推苏州住房和城乡建设局网站网签
  • wordpress怎么加站点图标网站将要准备建设的内容
  • 网站大幅广告郑州做网站外包的公司
  • 网站开发费用周期深圳企业100强
  • 台山网站建设公司wordpress空格代码
  • 免费vip网站推广网站排名易下拉刷词
  • 做效果图展板网站住房和建设部执业资格注册中心网站
  • 龙山建设工程有限公司网站安卓手机怎么做网站
  • 过期域名查询网站wordpress 应用店商
  • 做网站后台营销推广方式有哪些
  • 网站设计的几大标准wordpress插件按下载数
  • 凤翔网站制作开发小程序需要多少钱难吗
  • 快站淘客中转页果麦传媒的网站怎么做的
  • 网站开发样板网站自动识别移动终端
  • jsp网站开发制作wordpress博客无法重定向
  • 三都网站建设门户网站的特征
  • 网站建设授权书如何美化网站首页
  • 企业网站的公司和产品信息的介绍与网络营销关系怎样免费做书画网站
  • 龙华哪有做网站设计网络营销八大工具
  • 一定要知道的网站wordpress评论去除
  • 网站建设 英语词汇国际空间站
  • 网站维护提醒php文件大气企业响应式网站
  • 商标可以做网站吗网站收录查询接口
  • 上海高登联合建设网站做网站别人输账号代码