代码:
# 使用预训练好的VGG19网络为基础网络
model_vgg19 = vgg19(pretrained=True)
## 不使用vgg19网络中后面的AdaptiveAvgPool2d 和Linear层
base_model = model_vgg19.features
summary(base_model, input_size=(3,high,width))
遇到报错:RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same
报错意思是说,模型和输入数据类型不匹配,模型在GPU上,而输入数据是在CPU上。所以,我们要将模型放在GPU上,修改代码如下即可成功运行:
# 使用预训练好的VGG19网络为基础网络
model_vgg19 = vgg19(pretrained=True)
## 不使用vgg19网络中后面的AdaptiveAvgPool2d 和Linear层
base_model = model_vgg19.features
# 将模型移动到GPU上
base_model = base_model.to(device)
summary(base_model, input_size=(3,high,width))