文章目录

  • 1.Pytorch中什么时候调用forward()函数
  • 2.图片预处理
  • 3 if else语句
  • 4.torchvision.transforms.functional 中与图像预处理相关的函数

1.Pytorch中什么时候调用forward()函数

  因为Module类是nn模块里提供的一个模型构造类,是所有神经网络模块的基类,我们可以继承它来定义我们想要的模型。

import torch
from torch import nnclass MLP(nn.Module):# 声明带有模型参数的层,这里声明了两个全连接层def __init__(self, **kwargs):# 调用MLP父类Module的构造函数来进行必要的初始化。这样在构造实例时还可以指定其他函数super(MLP, self).__init__(**kwargs)self.hidden = nn.Linear(784, 256) # 隐藏层self.act = nn.ReLU()self.output = nn.Linear(256, 10)  # 输出层# 定义模型的前向计算,即如何根据输入x计算返回所需要的模型输出def forward(self, x):a = self.act(self.hidden(x))return self.output(a)X = torch.rand(2, 784)
net = MLP()
print(net)
net(X)

  为什么会调用forward()呢,是因为Module中定义了__call__()函数,该函数调用了forward()函数,当执行net(x)的时候,会自动调用__call__()函数


2.图片预处理

import transforms as T
trans = [T.RandomResize(min_size, max_size)]# 将图片随机缩放if hflip_prob > 0:  #hflip_prob 随机水平翻转的概率trans.append(T.RandomHorizontalFlip(hflip_prob))# 随机翻转,添加新的对象到列表末尾trans.extend([#在已存在的列表中添加新的列表内容T.RandomCrop(crop_size),# 随机裁剪T.ToTensor(),T.Normalize(mean=mean, std=std),#标准化处理:减均值,除以标准差])self.transforms = T.Compose(trans)#将多种变换组合在一起,即将多种预处理方法打包到transforms中

3 if else语句

def get_transform(train):#train为true的话base_size = 520crop_size = 480# 如果train为True的话,返回SegmentationPresetTrain(base_size, crop_size),否则返回SegmentationPresetEval(base_size)return SegmentationPresetTrain(base_size, crop_size) if train else SegmentationPresetEval(base_size)#后者是验证集的图片大小

4.torchvision.transforms.functional 中与图像预处理相关的函数

from torchvision.transforms import functional as F
image = F.resize(image, size)  # 将图像的最小边长缩放到size大小
img = F.pad(img, (0, 0, padw, padh), fill=fill)#(0, 0, padw, padh)分别表示左、上、右、下的填充宽度;

Pytorch搭建网络常见代码的理解相关推荐

  1. 使用 PyTorch 搭建网络 - predict_py篇

    predict_py篇 python中采用驼峰书写法且首字母大写的变量符号一般表示类名. 学习网络步骤:看原论文+看别人对原论文的理解,学习网络结构,看损失函数计算,看数据集,看别人写的代码,复现代码 ...

  2. Pytorch搭建网络训练葡萄酒分类数据集(三分类)

    代码如下: import torch import torch.nn as nn import torch.optim as optim import torch.nn.functional as F ...

  3. 实战:使用Pytorch搭建分类网络(肺结节假阳性剔除)

    实战:使用Pytorch搭建分类网络(肺结节假阳性剔除) 阅前可看: 实战:使用yolov3完成肺结节检测(Luna16数据集)及肺实质分割 其中的脚本资源getMat.py文件是对肺结节进行切割. ...

  4. 利用Pytorch搭建简单的图像分类模型(之二)---搭建网络

    Pytorch搭建网络模型-ResNet 一.ResNet的两个结构 首先来看一下ResNet和一般卷积网络结构上的差异: 图中上面一部分就是ResNet34的网络结构图,下面可以理解为一个含有34层 ...

  5. Deep Learning:基于pytorch搭建神经网络的花朵种类识别项目(内涵完整文件和代码)—超详细完整实战教程

    基于pytorch的深度学习花朵种类识别项目完整教程(内涵完整文件和代码) 相关链接:: 超详细--CNN卷积神经网络教程(零基础到实战) 大白话pytorch基本知识点及语法+项目实战 文章目录 基 ...

  6. 使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负

    使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负 1. 数据集 百度网盘链接,提取码:q79p 数据集文件格式为CSV.数据集包含了大约5万场英雄联盟钻石排位赛前15分钟的数据集合,总 ...

  7. 基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码)

    系列文章目录 lstm系列文章目录 1.基于pytorch搭建多特征LSTM时间序列预测代码详细解读(附完整代码) 2.基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码 ...

  8. ResNet网络详解并使用pytorch搭建模型、并基于迁移学习训练

    1.ResNet网络详解 网络中的创新点: (1)超深的网络结构(突破1000层) (2)提出residual模块 (3)使用Batch Normalization加速训练(丢弃dropout) (1 ...

  9. 实战:利用pytorch搭建VGG-16实现从数据获取到模型训练的猫狗分类网络

    起 在学习了卷积神经网络的理论基础和阅读了VGG的论文之后,对卷积有了大致的了解,但这都只是停留在理论上,动手实践更为重要,于是便开始了0基础学习pytorch.图像处理,搭建模型. pytorch学 ...

最新文章

  1. 用javascript进行一个简单的机器学习小实例
  2. Py之portalocker:portalocker的简介、安装、使用方法之详细攻略
  3. [js高手之路]从原型链开始图解继承到组合继承的产生
  4. fiddler设置https抓包
  5. XenDesktop 5 SQL Server Mirror事务日志比较大的原因分析
  6. matlab差分算子的灰度图像边缘检测,常用图像边缘检测方法及MATLAB研究
  7. Openssl更新步骤
  8. 自然语言处理 —— 2.2 使用词嵌入
  9. Base64 + 变为 空格 问题分析
  10. 趣谈 JOIN 操作
  11. java web简单工厂模式_JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
  12. XML的概述,.Dom4解析和SAX解析
  13. Quart 2D (DrawText)
  14. JavaScript:table元素行的添加和删除
  15. xiao776php,《xiao 776》_xiao 776_NEWS下载网
  16. python小明爬楼梯_Python3爬楼梯算法示例
  17. 360oauth token是什么意思_币圈token是什么意思?
  18. 《单域名下整合动网、动易、OBlog程序》
  19. 眼保健操(UPWND公益版)保护眼睛
  20. 【JVM】Java IDEA 配置项目的JVM运行内存大小

热门文章

  1. 1.2 Python图像的坐标变换-尺度变换
  2. NDK之直播推流-服务器端搭建
  3. 以太网帧格式 以及 认识MAC地址(局域网的通信原理)
  4. 对垃圾短信sayNO!我教你实现,网络手机号码接收验证码!
  5. 一文总结GitHub使用指南
  6. ResNeSt 之语义分割,ADE20K 全新 SoTA 47.6%
  7. 双11中的产业带:天猫集中爆发,“京多”紧急布局
  8. MBA面试系列之----中文面试宝典(二)
  9. c + Easyx 模拟闪电效果
  10. 技术人员应该研发符合穷人利益的项目