1.在加载模型测试的时候 出现并解决的问题:
1.1 net.load_state_dict(‘net_params.pkl’)
state = {
'net':net.state_dict(), # 模型的网络参数
'epoch':epoch + 1
}
你训练好的模型文件好像字典键值有很多个,包括epoch等,如上面的代码。
但我们只需要模型参数文件。
报错的原因是因为载入模型文件的键值太多了。pytorch识别不了。
所以测试模型加载模型的时候可以如下处理:
modelpath = 'F:\PythonProject\checkpoint\ew_model\cifar10_epoch_5.ckpt'
checkpoint = torch.load(modelpath)
net.load_state_dict(checkpoint['net'])
1.2 modelpath = 'F:\PythonProject\checkpoint\ew_model
出现权限错误,这样会有权限错误 因为打开的是文件夹 并非文件,
所以要在后面加上要打开的文件名,如下:
modelpath = 'F:\PythonProject\checkpoint\ew_model\cifar10_epoch_5.ckpt'
1.3 RuntimeError: size mismatch, m1: [1 x 25088], m2: [512 x 512]
卷积池化结束后图片的size为[1 x 25088] 与fc层的size[512 x 512] 不匹配
将原来前向传播的这行代码改为 x = x.view(-1,512)
x = self.features(x) # 前向传播时先经过卷积层和池化层
#print(x.size())
x = x.view(-1,512) #开始是x = x.view(x.size(0),-1)
#print(x.size())
x = self.classifier(x)
完整的代码查看连接
https://github.com/zhangsuguang/VGG16-CIFAR10-
第一次写技术博客 ,欢迎指点