电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>电子资料>如何在微控制器中构建神经网络

如何在微控制器中构建神经网络

2023-07-07 | zip | 0.00 MB | 次下载 | 免费

资料介绍

描述

我们将使用 TensorFflow 训练神经网络并在微控制器中实现它。我们的神经网络将预测 sin(x)。使用相同的过程,我们可以用正确的数据预测不同的输出。

人工神经网络在维基百科中被定义为“受构成动物大脑的生物神经网络模糊启发的计算系统。此类系统通过考虑示例来“学习”执行任务,通常无需使用特定于任务的规则进行编程

所以第一部分是我们必须教神经网络 sin(x) 函数是怎样的。

poYBAGORjeSAHrSZAAAM449YhFQ276.png
 

我们在 colab 中使用 TensorFlow,这里是链接https://colab.research.google.com/drive/1ABDULCjzvNZJ6TwHpTvAJnKeyM-_kfPR

我们需要训练数据,所以我们得到 x, y 对训练:

pYYBAGOSw2-ATlyNAAANPdlck58562.png
 

x, y 对用于测试我们的神经网络:

poYBAGOSw3OANuYeAAARIKLDNUo259.png
 

神经网络中的基本计算单位是神经或节点,它从其他一些节点或外部源接收输入并计算输出。每个输入都有一个关联的权重 (a),这是根据其对其他输入的相对重要性加上常量分配的,称为偏差 (b)。该节点将非线性函数应用于其输入的加权和,称为激活函数。在我们的例子中,我们使用 softsign 函数作为激活函数。

pYYBAGOSw3WAWYtaAAAKmrrjo4Y761.png
 

我们现在定义一个简单的神经网络,节点按层排列。相邻层的节点之间有连接边缘所有这些连接都有与之关联的权重。我们使用四层,一个输入层,两个隐藏层和一个输出层。

  • 输入节点——输入节点将外部世界的信息提供给网络,统称为“输入层”。在任何输入节点中都不会执行任何计算。
  • 隐藏节点——隐藏节点与外界没有直接联系(因此得名“隐藏”)。它们执行计算并将信息从输入节点传输到输出节点。隐藏节点的集合形成一个“隐藏层”。它可以有零个或多个隐藏层。
  • 输出节点——输出节点统称为“输出层”,负责计算和将信息从网络传输到外界。

我们在输入层有一个节点,在第一个隐藏层有 10 个节点,在第二个隐藏层有 3 个节点,在输出层有一个节点。这是图表:

poYBAGOhWuaAHzsFAACQ7pP5Ym8715.png
 

在 TensorFlow 中定义为:

pYYBAGOhWumAe1cLAAArLLP5Nek269.png
 

 

我们评估模型,误差非常低。

pYYBAGOhWu6AJyz2AAAmqQg5xIo866.png
 

为了在微控制器中实现模型,我们需要架构,我们之前定义了三层和每个节点的权重。

poYBAGOhWvGANkF4AABBjW59zjM428.png
 

正如我们所料,我们有三层,这些是权重:

pYYBAGOhWvSAR7rUAACxU41HtbE300.png
 

输入层只有一个输入 x 我们要计算 y = sin(x)。

第一隐藏层有10个节点,每个节点执行操作:

poYBAGOhWveAV5QxAAAGhlUgtQ8144.png
 

所以第一个数组有 10 个元素,每个节点一个“a”,第二个 10 个元素的数组是“b”。

poYBAGOhWv6AMKyNAAA3zsUpoI4065.png
 

第二个隐藏层有 3 个节点和 10 个输入,所以我们有一个 3x10 数组用于每个节点的“a”,以及 3 个数组用于“b”。

poYBAGOj9_yAa4kmAAAJl8nBDYg027.png
 
pYYBAGOj-ACAKqoNAABVKvyFGSw811.png
 

输出层是一个有 3 个输入的节点,所以我们有 3 个“a”和一个“b”。

poYBAGOj-AOARa1BAAAIl-89suw293.png
 
pYYBAGOj-AaAcdO2AAAPtMLMwFg055.png
 

我使用 platformio + vs 代码。对于 MT3620,您需要从此处安装平台支持https://github.com/Wiz-IO/platform-azure

现在我们可以在微控制器中实现它。我已经在 MT3620 板的 M7 内核和 ESP32 中实现了它。

我们只需要两个函数,一个用于层,我们传递每个节点的输入数、层中的节点数、权重、偏差和输入:

poYBAGOj-AqARZ8_AABHVTltNAM340.png
 

一个用于激活函数,softsign 函数:

poYBAGOj-AyAcJZVAAAQs6A73V4518.png
 

我们使用串行端口请求输入,然后将其传递给第一个隐藏层,结果传递给第二个隐藏层,输出传递给输出层:

poYBAGOj-BCAe_nLAAAtkP6Wrqs474.png
 

最后,我们将预测与 sin 函数的输出进行比较。

pYYBAGOj-BOABR9fAAAmw1fdOX8950.png
 

可以在 ESP32 中使用相同的代码并获得相同的结果。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费