现有模型的使用及修改
以VGG16为例:
vgg_true = torchvision.models.vgg16(pretrained=True)
vgg_false = torchvision.models.vgg16(pretrained=False)
# 在主要模块中添加一层
vgg16_true.add_module('add_linear',nn.Linear(1000,10))
# 在classifier中添加一层
vgg16_true.classifier.add_module('add_linear',nn.Linear(1000,10))
# 修改某一层
vgg16_false.classifier[6]=nn.Linear(4096,10)
#删掉某一层
del vgg16.classifier[6]
GPU训练方式:网络模型、数据(输入,标注)、损失函数
1、模型转为cuda:mdoel.cuda()
2、损失函数转为cuda: loss.cuda()
3、从dataloader中出来的:imgs = imgs.cuda()
从dataloader中出来的:targets = targets.cuda()
第二种写法:model.to(device)
4、gpu上训练的模型在cpu上使用,需要映射
model = torch.load('gpu.pth',map_location=torch.device('cpu'))