文章目录

一、网络骨架的搭建(Containers)

二、网络模型的下载和运用到自己数据集

weights为false时候,都是默认的参数
若为true,则为模型在它的数据集上面的训练的参数

三、网络模型的保存与获取
保存
第二种方式是以字典显示

获取
第二种,直接显示的话,则为字典显示,需要转换一下,才能显示模型。

四、模型训练套路
五、利用GPU训练
加快模型训练速度,本质上是并行计算

方式一
在下面基础位置加上cuda即可。
如下:

方式二
在device括号里面设置要运行的设备;也可改为cuda(GPU上面跑)





注意

六、完整的模型验证
(测试,demo)套路-利用已经训练好的模型,然后给它提供输入
如果将训练好的网络模型,放到test上面
test.py书写;
python
import torch
import torchvision
from PIL import Image
from torch import nn
from torchvision import transforms
image_path="E:\PythonProject\image\dog.png"
image=Image.open(image_path)
#将图片大小转为32*32以适应网络数据输入格式 并且将图片转为三通道图像
image=image.convert("RGB")
transform=torchvision.transforms.Compose([
torchvision.transforms.Resize((32,32)),
torchvision.transforms.ToTensor() ])
image=transform(image)
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.model = nn.Sequential(
nn.Conv2d(3, 32, 5, 1, 2),
nn.MaxPool2d(2),
nn.Conv2d(32, 32, 5, 1, 2),
nn.MaxPool2d(2),
nn.Conv2d(32, 64, 5, 1, 2),
nn.MaxPool2d(2),
nn.Flatten(),
nn.Linear(64 * 4 * 4, 64),
nn.Linear(64, 10)
)
def forward(self, x):
x = self.model(x)
return x
#模型的加载
model=torch.load("net_5_cpu.pth",weights_only=False)
image=torch.reshape(image,(1,3,32,32))
model.eval()
with torch.no_grad():
output=model(image)
print(output)
print(output.argmax(1))
注意
如果训练的模型为gpu训练的
则要映射到cpu下面

七、怎么样看别人的代码
1、找到train.py
看里面的结构
2、参数的设置


