自学pytorch深度学习遇到的坑

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-
第一次写技术博客 ,欢迎指点

发布了16 篇原创文章 · 获赞 3 · 访问量 1088

猜你喜欢

转载自blog.csdn.net/weixin_42233120/article/details/100036563