美文网首页
Pytorch 版本问题无法load pretrained mo

Pytorch 版本问题无法load pretrained mo

作者: hi_lan | 来源:发表于2019-01-11 21:01 被阅读0次

老娘真的要吐血啦, pytorch版本load pretrained model不兼容和matlab is unable to call pytorch0.4。

至于为什么matlab不能call pytorch0.4, 网上有很多猜测,比如matlablibc++版本太老,线程的原因,反正都不靠谱,只能回退。

测试别人的网络,要求pytorch0.4以上,然后我就更新啦, 并且在0.4的版本下训练了自己的网络,然后我发现matlab无法call pytorch0.4. 所以我就回退了版本

conda install pytorch=0.3.1 torchvision cuda80 -c pytorch

回退以后出现pytorch无法load_state_dict,会出现各种各样的unexpected错误。

error 1

 error: ‘module’ object has no attribute ‘_rebuild_tensor_v2’

solution 

在import torch 之后,加上

import torch._utils

try:

    torch._utils._rebuild_tensor_v2

except AttributeError:

    def _rebuild_tensor_v2(storage, storage_offset, size, stride, requires_grad, backward_hooks):

        tensor= torch._utils._rebuild_tensor(storage, storage_offset, size, stride)

tensor.requires_grad= requires_grad

        tensor._backward_hooks= backward_hooks

        return tensor

torch._utils._rebuild_tensor_v2= _rebuild_tensor_v2

error 2

Unexpected key(s) in state_dict: batches_tracked”

solution

pretrained_dict= torch.load('path to .pth.tar')  %自己的路径

model_dict= model.state_dict()

pretrained_dict= {k: vfor k, vin pretrained_dict.items()if kin model_dict}

model_dict.update(pretrained_dict)

model.load_state_dict(pretrained_dict)

error 3

nn.InstanceNorm3d 无法存储,目前还没有找到答案

相关文章

网友评论

      本文标题:Pytorch 版本问题无法load pretrained mo

      本文链接:https://www.haomeiwen.com/subject/tkdfzftx.html