3.0 神经网络 - PyTorch学习笔记
神经网络 (NEURAL NETWORK)
神经网络可以通过 torch.nn
包来构建
上节课已经学习了 autograd
,nn
是在 autograd
的基础上定义和区分模型。一个 nn.Module
包含了层,和一个 forward(input)
来返回 output
。
以典型 LetNet-5 网络举例:
这是一个简单的前馈(feed-forward)网络。具有输入,将输入馈送到一层接一层,最后输出。
结构详解参考:Fly~~~
一个典型的神经网络训练过程包含以下几个方面:
- 定义神经网络的学习参数
- 迭代输入数据
- 通过网络处理输入数据
- 计算损失函数,也就是输出距离整理的距离
- 传递梯度反馈到网络的参数
- 更新网络的参数,典型更新规则是
weight = weight - learning_rate * gradient
定义网络 (Define the network)
让我们定义这个网络
import torch
import torch.nn as nn
import torch.nn.functional as Fclass Net(nn.Module):def __init__(self):super(Net, self).__init__()# 1 input image channel, 6 output channels, 3x3 square convolution# kernelself.conv1 = nn.Conv2d(1, 6, 3)self.conv2 = nn.Conv2d(6, 16, 3)# an affine operation: y = Wx + bself.fc1 = nn.Linear(16 * 6 * 6, 120) # 6*6 from image dimensionself.fc2 = nn.Linear(120, 84)self.fc3 = nn.Linear(84, 10)def forward(self, x):# Max pooling over a (2, 2) windowx = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))# If the size is a square you can only specify a single numberx = F.max_pool2d(F.relu(self.conv2(x)), 2)x = x.view(-1, self.num_flat_features(x))x = F.relu(self.fc1(x))x = F.relu(self.fc2(x))x = self.fc3(x)return xdef num_flat_features(self, x):size = x.size()[1:] # all dimensions except the batch dimensionnum_features = 1for s in size:num_features *= sreturn num_featuresnet = Net()
print(net)
输出:
Net((conv1): Conv2d(1, 6, kernel_size=(3, 3), stride=(1, 1))(conv2): Conv2d(6, 16, kernel_size=(3, 3), stride=(1, 1))(fc1): Linear(in_features=576, out_features=120, bias=True)(fc2): Linear(in_features=120, out_features=84, bias=True)(fc3): Linear(in_features=84, out_features=10, bias=True)
)
3.0 神经网络 - PyTorch学习笔记相关推荐
- 【从线性回归到 卷积神经网络CNN 循环神经网络RNN Pytorch 学习笔记 目录整合 源码解读 B站刘二大人 绪论(0/10)】
深度学习 Pytorch 学习笔记 目录整合 数学推导与源码详解 B站刘二大人 目录传送门: 线性模型 Linear-Model 数学原理分析以及源码详解 深度学习 Pytorch笔记 B站刘二大人( ...
- 深度学习入门之PyTorch学习笔记:卷积神经网络
深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 4 卷积神经网络 4.1 主要任务及起源 4.2 卷积神经网络的原理和结构 4.2.1 卷积层 1. ...
- PyTorch学习笔记(10)--搭建简单的神经网络以及Sequential的使用
PyTorch学习笔记(10)–搭建简单的神经网络以及Sequential的使用 本博文是PyTorch的学习笔记,第10次内容记录,主要搭建一个简单的神经网络,并介绍Sequential的使 ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- pytorch学习笔记 torchnn.ModuleList
1 nn.ModuleList原理 nn.ModuleList,它是一个储存不同 module,并自动将每个 module 的 parameters 添加到网络之中的容器. 你可以把任意 nn.Mod ...
- 深度学习入门之PyTorch学习笔记:多层全连接网络
深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 3.1 PyTorch基础 3.2 线性模型 3.2.1 问题介绍 3.2.2 一维线性回归 3.2 ...
- 深度学习入门之PyTorch学习笔记:深度学习介绍
深度学习入门之PyTorch学习笔记:深度学习介绍 绪论 1 深度学习介绍 1.1 人工智能 1.2 数据挖掘.机器学习.深度学习 1.2.1 数据挖掘 1.2.2 机器学习 1.2.3 深度学习 第 ...
- pytorch学习笔记(2):在MNIST上实现一个CNN
参考文档:https://mp.weixin.qq.com/s/1TtPWYqVkj2Gaa-3QrEG1A 这篇文章是在一个大家经常见到的数据集 MNIST 上实现一个简单的 CNN.我们会基于上一 ...
- Pytorch学习笔记总结
往期Pytorch学习笔记总结: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 Pytorch系列目录: PyTorch学习笔记( ...
最新文章
- Advanced Installer 9.8打包实录
- LOG与DOG的关系
- Java - 计算不同字符或数字的个数
- js实现全角字符转换成半角字符
- SQLSERVER的视图、函数、存储过程、触发器
- 操作系统—处理机调度
- 时间序列分析工具箱——timetk
- STC-ISP下载失败的原因小结
- 关于组长、队长和团长
- Docker 部署微服务
- 【React】入门实例
- 蓝桥杯B组初赛2019
- 使用客户端jedis时报错Could not get a resource from the pool 以及使用Spring Data Redis报错解决方法
- 从一个不同角度看精准度与召回
- 大学开启大数据开发之路
- 电子计算机显示屏不亮了,为什么显示屏不亮_主机亮了显示器无信号如何修复-win7之家...
- 本地数据仓库项目(一) —— 本地数仓搭建详细流程
- 手把手教你在centos上配置Django项目(超详细步骤)
- HTTP 协议基础,http头信息详解 | 中国网管联盟
- Windows10系统下JDK1.8的下载安装及环境变量配置