一、环境搭建
1、安装anaconda虚拟环境:
① 安装anaconda
② 新建虚拟环境
conda create -n pytorch python=3.6
【备注】
博主建议,安装3.6的python包,比较稳定
③在pytorch虚拟环境中,安装pytorch依赖包
④ 可以进入命令行,查看pytorch是否安装成功
import torch
⑤ 查看cuda(如果有gpu)是否安装成功
torch.cuda.is_available()
返回:true:表示支持;false:表示不支持
⑥ 可以通过如下命令,查看自己电脑的显卡情况
nvidia-smi
二、两个比较好用的命令
1、dir():打开对应指令的工具箱
例如:dir(torch.cuda)
2、help():具体的函数使用说明
例如:help(torch.cuda.is_avaliable)
三、dataset数据类
四、tensorboard数据可视化工具
1、引入tensorboard的方法
from torch.utils.tensorboard import SummaryWriter
writer = SummartyWriter('tensorboard数据文件夹')
writer.add_image() # 在tensorboard中,显示图片--可以是我们训练过程的中间数据显示
2、查看tensorboard记录的log数据
tensorboard --logdir=logs(具体的tensorboard数据记录文件夹名称) --port=6007(可以指定具体的端口号)
五、torchvision中的transform
1、transform主要是对图片进行变换:
主要借助transforms.py中的不同类实现对图片的不同变换
totensor:将其他类型的图片转换为tensor类型(转为tensor的原因,是深度学习常用的数据结构就是tensor结构,tensor结构包含一些模型训练的属性字段)
resize
2、用法
from torchvision import transforms
3、totensor用法
4、normalize归一化用法
5、resize用法
【备注】
① 在函数上,使用快捷键ctrl+p;可以查看函数需要的参数
② PIL读取的图片类型是:PIL image
③ opencv读取的图片类型是: numpy.arrary()
六、torchvision使用【视觉领域相关数据集】
1、使用包
torchvision.datasets
2、dataset设定数据集:指定什么数据集
数据集的自动下载,将download设置为True,就会自动下载数据集
3、dataloader是数据集加载器
加载数据,加载多少数据
七、网络搭建
参考官网:PyTorch documentation — PyTorch 1.12 documentation
在torch.nn模块中
1、nn.model
【备注】nn.reshape()形状变换
定义自己的模型类时,要继承nn.Model类,同时,实现里面的两个函数:init()和forward()函数
模型层的定义,写在init函数中
2.nn.torch.conv2d(in_channel, out_channel, kernel_size, stride, padding)
①in_channl:输入通道,彩色图片一般就是3个通道
out_chanel:输出图像的channel数
②kernel_size:卷积核大小;网络训练过程中,其实就是对其进行不断调整的过程
③stride:卷积核移动步数
④padding:原始输入是否进行填充
3、池化层pooling
最常用的maxpool2d:最大池化就是取kernel中的最大值
作用:保留输入数据的特征,同时,将数据量减小
4、非线性激活
作用:对网络引入一些非线性的特质,最常见的nn.Relu、nn.sigmoid;使模型训练出符合各种曲线特征的模型,增强模型的泛化能力
inplace是否对input进行替换
5、正则化层
作用:加快神经网络的训练速度,用到频率不高
6、recurrent 层
里面包含各种模型,依需求看是否需要,用到频率不高
7、dropout层
作用:以一定概率将某些数据删除,防止过拟合
8、torch.flatten
作用:将数据进行展平,将数据变为一行
9.Liner线性层(input, output)
类似全连接层间,前后的输入输出
七、完整模型训练套路
1、
2、GPU训练方式1
【备注】引入cuda就可以,只需要对模型、数据、优化器的基础上,再加上.cuda()即可为GPU方式
3、GPU训练方式2-device
(1)设置设备
device = torch.device("cpu")
或者
device = torch.device("cuda")
后续代码,加上.to(device)即可;同样是对模型、数据、优化器进行添加to(device)
定义设备
4、完整的模型验证