神经网络 (NEURAL NETWORK)

神经网络可以通过 torch.nn 包来构建

上节课已经学习了 autogradnn 是在 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学习笔记相关推荐

  1. 【从线性回归到 卷积神经网络CNN 循环神经网络RNN Pytorch 学习笔记 目录整合 源码解读 B站刘二大人 绪论(0/10)】

    深度学习 Pytorch 学习笔记 目录整合 数学推导与源码详解 B站刘二大人 目录传送门: 线性模型 Linear-Model 数学原理分析以及源码详解 深度学习 Pytorch笔记 B站刘二大人( ...

  2. 深度学习入门之PyTorch学习笔记:卷积神经网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 4 卷积神经网络 4.1 主要任务及起源 4.2 卷积神经网络的原理和结构 4.2.1 卷积层 1. ...

  3. PyTorch学习笔记(10)--搭建简单的神经网络以及Sequential的使用

    PyTorch学习笔记(10)–搭建简单的神经网络以及Sequential的使用     本博文是PyTorch的学习笔记,第10次内容记录,主要搭建一个简单的神经网络,并介绍Sequential的使 ...

  4. PyTorch学习笔记(二)——回归

    PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...

  5. pytorch学习笔记 torchnn.ModuleList

    1 nn.ModuleList原理 nn.ModuleList,它是一个储存不同 module,并自动将每个 module 的 parameters 添加到网络之中的容器. 你可以把任意 nn.Mod ...

  6. 深度学习入门之PyTorch学习笔记:多层全连接网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 3.1 PyTorch基础 3.2 线性模型 3.2.1 问题介绍 3.2.2 一维线性回归 3.2 ...

  7. 深度学习入门之PyTorch学习笔记:深度学习介绍

    深度学习入门之PyTorch学习笔记:深度学习介绍 绪论 1 深度学习介绍 1.1 人工智能 1.2 数据挖掘.机器学习.深度学习 1.2.1 数据挖掘 1.2.2 机器学习 1.2.3 深度学习 第 ...

  8. pytorch学习笔记(2):在MNIST上实现一个CNN

    参考文档:https://mp.weixin.qq.com/s/1TtPWYqVkj2Gaa-3QrEG1A 这篇文章是在一个大家经常见到的数据集 MNIST 上实现一个简单的 CNN.我们会基于上一 ...

  9. Pytorch学习笔记总结

    往期Pytorch学习笔记总结: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 Pytorch系列目录: PyTorch学习笔记( ...

最新文章

  1. Advanced Installer 9.8打包实录
  2. LOG与DOG的关系
  3. Java - 计算不同字符或数字的个数
  4. js实现全角字符转换成半角字符
  5. SQLSERVER的视图、函数、存储过程、触发器
  6. 操作系统—处理机调度
  7. 时间序列分析工具箱——timetk
  8. STC-ISP下载失败的原因小结
  9. 关于组长、队长和团长
  10. Docker 部署微服务
  11. 【React】入门实例
  12. 蓝桥杯B组初赛2019
  13. 使用客户端jedis时报错Could not get a resource from the pool 以及使用Spring Data Redis报错解决方法
  14. 从一个不同角度看精准度与召回
  15. 大学开启大数据开发之路
  16. 电子计算机显示屏不亮了,为什么显示屏不亮_主机亮了显示器无信号如何修复-win7之家...
  17. 本地数据仓库项目(一) —— 本地数仓搭建详细流程
  18. 手把手教你在centos上配置Django项目(超详细步骤)
  19. HTTP 协议基础,http头信息详解 | 中国网管联盟
  20. Windows10系统下JDK1.8的下载安装及环境变量配置

热门文章

  1. Linux系统调用及其效率
  2. Python自动化开发 - RESTful API
  3. 关于面试,我也有说的
  4. (剑指Offer)面试题1:赋值运算符函数
  5. 微信公众帐号开发教程第1篇-引言(转)
  6. 智能算法之Matlab实现(1)——遗传算法(1)
  7. [C++] 为什么Linux需要itoa函数
  8. Windows过滤驱动程序的概念
  9. WDK开发环境构建驱动程序入门、Windows驱动程序的Check Build和Free Build
  10. 图解内存搜索工具初步使用