Pytorch搭建网络常见代码的理解
文章目录
- 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搭建网络常见代码的理解相关推荐
- 使用 PyTorch 搭建网络 - predict_py篇
predict_py篇 python中采用驼峰书写法且首字母大写的变量符号一般表示类名. 学习网络步骤:看原论文+看别人对原论文的理解,学习网络结构,看损失函数计算,看数据集,看别人写的代码,复现代码 ...
- Pytorch搭建网络训练葡萄酒分类数据集(三分类)
代码如下: import torch import torch.nn as nn import torch.optim as optim import torch.nn.functional as F ...
- 实战:使用Pytorch搭建分类网络(肺结节假阳性剔除)
实战:使用Pytorch搭建分类网络(肺结节假阳性剔除) 阅前可看: 实战:使用yolov3完成肺结节检测(Luna16数据集)及肺实质分割 其中的脚本资源getMat.py文件是对肺结节进行切割. ...
- 利用Pytorch搭建简单的图像分类模型(之二)---搭建网络
Pytorch搭建网络模型-ResNet 一.ResNet的两个结构 首先来看一下ResNet和一般卷积网络结构上的差异: 图中上面一部分就是ResNet34的网络结构图,下面可以理解为一个含有34层 ...
- Deep Learning:基于pytorch搭建神经网络的花朵种类识别项目(内涵完整文件和代码)—超详细完整实战教程
基于pytorch的深度学习花朵种类识别项目完整教程(内涵完整文件和代码) 相关链接:: 超详细--CNN卷积神经网络教程(零基础到实战) 大白话pytorch基本知识点及语法+项目实战 文章目录 基 ...
- 使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负
使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负 1. 数据集 百度网盘链接,提取码:q79p 数据集文件格式为CSV.数据集包含了大约5万场英雄联盟钻石排位赛前15分钟的数据集合,总 ...
- 基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码)
系列文章目录 lstm系列文章目录 1.基于pytorch搭建多特征LSTM时间序列预测代码详细解读(附完整代码) 2.基于pytorch搭建多特征CNN-LSTM时间序列预测代码详细解读(附完整代码 ...
- ResNet网络详解并使用pytorch搭建模型、并基于迁移学习训练
1.ResNet网络详解 网络中的创新点: (1)超深的网络结构(突破1000层) (2)提出residual模块 (3)使用Batch Normalization加速训练(丢弃dropout) (1 ...
- 实战:利用pytorch搭建VGG-16实现从数据获取到模型训练的猫狗分类网络
起 在学习了卷积神经网络的理论基础和阅读了VGG的论文之后,对卷积有了大致的了解,但这都只是停留在理论上,动手实践更为重要,于是便开始了0基础学习pytorch.图像处理,搭建模型. pytorch学 ...
最新文章
- 用javascript进行一个简单的机器学习小实例
- Py之portalocker:portalocker的简介、安装、使用方法之详细攻略
- [js高手之路]从原型链开始图解继承到组合继承的产生
- fiddler设置https抓包
- XenDesktop 5 SQL Server Mirror事务日志比较大的原因分析
- matlab差分算子的灰度图像边缘检测,常用图像边缘检测方法及MATLAB研究
- Openssl更新步骤
- 自然语言处理 —— 2.2 使用词嵌入
- Base64 + 变为 空格 问题分析
- 趣谈 JOIN 操作
- java web简单工厂模式_JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- XML的概述,.Dom4解析和SAX解析
- Quart 2D (DrawText)
- JavaScript:table元素行的添加和删除
- xiao776php,《xiao 776》_xiao 776_NEWS下载网
- python小明爬楼梯_Python3爬楼梯算法示例
- 360oauth token是什么意思_币圈token是什么意思?
- 《单域名下整合动网、动易、OBlog程序》
- 眼保健操(UPWND公益版)保护眼睛
- 【JVM】Java IDEA 配置项目的JVM运行内存大小