一、环境搭建

1、安装anaconda虚拟环境:

① 安装anaconda

② 新建虚拟环境

conda create -n pytorch python=3.6

【备注】

博主建议,安装3.6的python包,比较稳定

③在pytorch虚拟环境中,安装pytorch依赖包

  • 进入pytorch官网: https://www.pytorch.org
  • 根据电脑情况选择,依赖的各个包(如若:没有NVIDIA显卡,cuda可以选择NONE),如图
  • 将上述图片框中命令,复制到coda promote命令行,进行安装pytorh

④ 可以进入命令行,查看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用法

pytorch 读小文件 pytorch如何打开_python

 4、normalize归一化用法

pytorch 读小文件 pytorch如何打开_python_02

5、resize用法 

pytorch 读小文件 pytorch如何打开_深度学习_03

 

pytorch 读小文件 pytorch如何打开_python_04

【备注】

① 在函数上,使用快捷键ctrl+p;可以查看函数需要的参数

② PIL读取的图片类型是:PIL image

③ opencv读取的图片类型是: numpy.arrary()

六、torchvision使用【视觉领域相关数据集】

1、使用包

torchvision.datasets

2、dataset设定数据集:指定什么数据集

数据集的自动下载,将download设置为True,就会自动下载数据集

pytorch 读小文件 pytorch如何打开_1024程序员节_05

3、dataloader是数据集加载器

加载数据,加载多少数据

七、网络搭建

在torch.nn模块中

1、nn.model

【备注】nn.reshape()形状变换

pytorch 读小文件 pytorch如何打开_深度学习_06

定义自己的模型类时,要继承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;使模型训练出符合各种曲线特征的模型,增强模型的泛化能力

pytorch 读小文件 pytorch如何打开_深度学习_07

inplace是否对input进行替换 

5、正则化层

作用:加快神经网络的训练速度,用到频率不高

6、recurrent 层

里面包含各种模型,依需求看是否需要,用到频率不高

7、dropout层

作用:以一定概率将某些数据删除,防止过拟合

8、torch.flatten

作用:将数据进行展平,将数据变为一行

9.Liner线性层(input, output)

类似全连接层间,前后的输入输出

七、完整模型训练套路

1、

2、GPU训练方式1

pytorch 读小文件 pytorch如何打开_python_08

 

【备注】引入cuda就可以,只需要对模型、数据、优化器的基础上,再加上.cuda()即可为GPU方式

3、GPU训练方式2-device

(1)设置设备

device = torch.device("cpu")

或者

device = torch.device("cuda")

后续代码,加上.to(device)即可;同样是对模型、数据、优化器进行添加to(device)

定义设备

pytorch 读小文件 pytorch如何打开_pytorch_09

4、完整的模型验证