Pytorch实现卷积神经网络(回归问题)

  • 前言
  • 一、Pytorch
  • 二、卷积神经网络
    • 1.CNN结构
    • 2.实现一个卷积神经网络类——代码
  • 总结

前言

深度学习当前的热度虽然没有前两年那么火热,尤其是在学界领域,但是在一些特殊问题中仍有一定的利用价值。一般而言,pytorch在学界使用的较多,tensorflow在业界使用的较多。

一、Pytorch

pytorch的使用基于tensor(张量)来进行最基本的运算。对于一般的神经网络而言,四维张量是最常见的

import torch
torch.Tensor(5,2,50,50)

上边的代码表示生成了一个4维tensor,四个维度分别表示(batch_size, channel_num, width, height)。batch_size表示一组中有多少条数据,channel_num表示一条数据的通道数,如彩色照片的通道数为3,而黑白照片的通道数为1;width, height则表示一个二维数据的两个维度。

Pytorch中

二、卷积神经网络

1.CNN结构

CNN的结构通常由卷积层、池化层、全连接层构成。卷积、池化的数目多少可以自行设计,下面是torch中封装好可以在CNN中直接使用的子类。

from torch import nn
nn.Conv2d(in_channels=1, out_channels=10, kernel_size=3, stride=1)
nn.MaxPool2d(kernel_size=2, stride=1)
nn.Linear(3240, 200)
nn.Flatten()

需要注意的是,在卷积、池化层组与全连接层之间会有一步“展平”操作,其含义即为将高维数据转换为一维数据。例如,shape为(4,3,28,28)的数据在 nn.Flatten() 操作后会变成 (4,3 * 28 * 28)的数据。

2.实现一个卷积神经网络类——代码

代码如下(示例):

class Cnn(nn.Module):def __init__(self, out_node):super(Cnn, self).__init__()self.conv = nn.Sequential(nn.Conv2d(in_channels=1, out_channels=10, kernel_size=3, stride=1), #卷积层# nn.ReLU(True),nn.MaxPool2d(kernel_size=2, stride=1),#最大池化层nn.Conv2d(in_channels=10, out_channels=10, kernel_size=3, stride=1),# nn.ReLU(True),nn.MaxPool2d(kernel_size=2, stride=1),nn.Flatten() # 展平操作,为了与全连接层匹配)self.fc = nn.Sequential(nn.Linear(3240, 200), #线性层nn.ReLU(inplace=True), # relu激活函数# nn.Dropout(),nn.Linear(200, out_node),nn.ReLU(inplace=True),)def forward(self, x):  #out = self.conv(x)print(out.shape)# out = out.view(out.size(0), 10 * 25 * 25)# print(out.shape)out = self.fc(out)# print(out.shape)return out

总结

本篇简单的对CNN的pytorch实现进行了说明,主要是卷积网络类的实现,要完整实现训练、验证、测试、调参还需要很多步骤,将会在之后陆续分享。

Pytorch实现卷积神经网络(回归问题)相关推荐

  1. 用PyTorch搭建卷积神经网络

    用PyTorch搭建卷积神经网络 本篇是加拿大McGill本科,Waterloo硕士林羿实习时所作的工作.发文共享,主要是面对PyTorch的初学者. 本篇文章是一篇基础向的PyTorch教程,适合有 ...

  2. 【深度学习】基于Pytorch的卷积神经网络概念解析和API妙用(一)

    [深度学习]基于Pytorch的卷积神经网络API妙用(一) 文章目录 1 不变性 2 卷积的数学分析 3 通道 4 互相关运算 5 图像中目标的边缘检测 6 基于Pytorch的卷积核 7 特征映射 ...

  3. 【深度学习】基于Pytorch的卷积神经网络概念解析和API妙用(二)

    [深度学习]基于Pytorch的卷积神经网络API妙用(二) 文章目录1 Padding和Stride 2 多输入多输出Channel 3 1*1 Conv(笔者在看教程时,理解为降维和升维) 4 池 ...

  4. Educoder 机器学习 神经网络 第四关:使用pytorch搭建卷积神经网络识别手写数字

    任务描述 相关知识 卷积神经网络 为什么使用卷积神经网络 卷积 池化 全连接网络 卷积神经网络大致结构 pytorch构建卷积神经网络项目流程 数据集介绍与加载数据 构建模型 训练模型 保存模型 加载 ...

  5. Python实现贝叶斯优化器(Bayes_opt)优化卷积神经网络回归模型(CNN回归算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 贝叶斯优化器 (BayesianOptimization) 是一 ...

  6. 【PyTorch】卷积神经网络

    卷积神经网络 卷积神经网络最初是为了解决计算机视觉的相关问题设计的,现在其不仅被应用在图像和视频领域,也可用于诸如音频信号的时间序列信号的处理之中. 本文主要着重于卷积神经网络的基本原理和使用PyTo ...

  7. Pytorch 深度卷积神经网络 AlexNet

    Pytorch 深度卷积神经网络 AlexNet 0. 环境介绍 环境使用 Kaggle 里免费建立的 Notebook 教程使用李沐老师的 动手学深度学习 网站和 视频讲解 小技巧:当遇到函数看不懂 ...

  8. pytorch设计卷积神经网络的广义分析

    首先卷积神经网络一定是非循环的神经网络 神经网络的设计是以层为单位的 而每层卷积神经网络都有输入输出和W,H 四个参数 根据传递方向可得到以下性质 必须满足前一层的输出后一层的输入参数一致,也就是说最 ...

  9. pytorch卷积可视化_使用Pytorch可视化卷积神经网络

    pytorch卷积可视化 Filter and Feature map Image by the author 筛选和特征图作者提供的图像 When dealing with image's and ...

最新文章

  1. Android用户界面开发(11):Menu
  2. mysqlfor循环中出错继续_Python学习笔记(循环)
  3. jsp 跳到servlet路径_请问如何从jsp中跳到servlet中?
  4. Java基础 选择语句,循环结构数组
  5. RealWave Surfaces 泡沫
  6. dubbo + zookeeper 简介和部署
  7. linux 模拟延时和丢包
  8. 【DotNet 技能系列】VS工具快捷键及常用技巧
  9. AltiumDesigner画图不求人12 AD库转换为PADS库
  10. AI创作现状与未来发展浅析
  11. 74cms 5.0.1版本文件包含漏洞复现
  12. [5211]:Mutiple
  13. spark kryo java,在Spark中自定义Kryo序列化输入输出API
  14. [LiteratureReview]Improving 3D Object Detection for Pedestrians with Virtual Multi-View Synthesis...
  15. C语言中如何测量各种变量的长度
  16. 程序员必备的几款文档编辑器
  17. 单用户MIMO系统(二):信道信息在发端未知
  18. java实现最近距离
  19. 为什么他们能成为大师-7位华人诺贝尔科学奖得主的成功法则
  20. Unix时间戳1970Java与Unix时间戳互转

热门文章

  1. ubuntu安装python3(源码安装方法)
  2. 第14步:自定义CSS和主题颜色
  3. linux 111端口的用处,扫描到的端口到底有什么用
  4. 【VMware vSAN 7.0】6.6 使用快速入门功能配置延伸集群或双节点集群—我们有软硬件解决方案
  5. 【python小游戏】用python写一款小游戏--贪吃蛇
  6. C语言数据类型、常量和变量
  7. 想自学UG编程的看这里哦
  8. “最强大脑”智慧检务如何落地?最佳智慧检务大数据平台案例!
  9. 手把手教你使用Linux安装i3wm桌面
  10. 树莓派自定义显示分辨率