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

PyTorch官网demo解读——第一个神经网络(2)

上一篇:PyTorch官网demo解读——第一个神经网络(1)

继上一篇文章我们展示了第一个神经网络的完整代码,今天我们来聊聊这个神经网络的模型设计。

这个demo实际上只使用了一个简单的线性模型:y = wx + b;

手写数字识别最后其实只输出10个结果(0~9),所以我们可以将结果表示为包含十个数的一维矩阵 [10],矩阵中的每个值是预测的概率值,表示索引代表的数字的概率。

我们的图片是28*28=784像素的,我们用一维矩阵[784]来表示,所以我们的目标就是将784 => 10。因为这个demo中只使用了一层神经网络,于是我们将我们的权重参数设计成784x10的二维矩阵[784, 10],这样每张图片的像素值乘以权重矩阵就得出10个数的一维矩阵[10],再加上10个数的偏差值bias就是我们预测的结果了。是不是很简单:=))

每个权重参数其实就是一个神经元,那么我们总共只使用了7840个神经元,就可以识别数字了。

每个神经元执行的计算也很简单,就是进行了一次 y = wx + b 的函数运算,结果y再进行一次激活函数运算(log_softmax)

模型运行简化流程如下图:

对应demo中的关键代码:
# 初始化权重和偏差值,权重是随机出来的784*10的矩阵,偏差初始化为0
weights = torch.randn(784, 10) / math.sqrt(784)
weights.requires_grad_()
bias = torch.zeros(10, requires_grad=True)# 激活函数
def log_softmax(x):return x - x.exp().sum(-1).log().unsqueeze(-1)# 定义模型:y = wx + b
# 实际上就是单层的Linear模型
def model(xb):return log_softmax(xb @ weights + bias)

ok,今天就先聊到这里吧!

原来数学如此的美,代码的尽头是数学?

相关文章:

  • C++:类和对象(1)
  • 亿发零售云引领新零售时代:智能收银系统助力连锁门店多业态发展
  • Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架
  • Linux 使用 Anaconda+Uwsgi 部署 Django项目和前端项目
  • 13、Kafka副本机制详解
  • 在 Cray Linux 上配置 LSF 集成
  • 全面掌握XSS漏洞攻击,实战案例从Self-XSS到账户接管,以及通过参数污染的XSS实现攻击
  • 设计模式——组合模式(结构型)
  • 如何提升数据结构方面的算法能力?
  • Leetcode 376 摆动序列
  • 计算机论文写作助手
  • 隐私计算介绍
  • 5G边缘网关如何助力打造隧道巡检机器人
  • luttuce(RedisTempate)实现hash(动态数据) expire lua脚本
  • Lvs-NAT部署
  • 收藏网友的 源程序下载网
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【个人向】《HTTP图解》阅后小结
  • 10个最佳ES6特性 ES7与ES8的特性
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • docker-consul
  • iOS 颜色设置看我就够了
  • JavaScript服务器推送技术之 WebSocket
  • Java的Interrupt与线程中断
  • Java多态
  • java中的hashCode
  • js ES6 求数组的交集,并集,还有差集
  • LeetCode29.两数相除 JavaScript
  • Sass Day-01
  • sessionStorage和localStorage
  • SpringBoot几种定时任务的实现方式
  • Web标准制定过程
  • yii2权限控制rbac之rule详细讲解
  • 关于Flux,Vuex,Redux的思考
  • 技术胖1-4季视频复习— (看视频笔记)
  • 深度学习在携程攻略社区的应用
  • 使用parted解决大于2T的磁盘分区
  • 微信小程序填坑清单
  • 用Visual Studio开发以太坊智能合约
  • 说说我为什么看好Spring Cloud Alibaba
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (52)只出现一次的数字III
  • (C#)获取字符编码的类
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (翻译)terry crowley: 写给程序员
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (七)Java对象在Hibernate持久化层的状态
  • (十)DDRC架构组成、效率Efficiency及功能实现