问题起因
这个问题的起因是我需要在Python3.5环境下读取一个infos.pkl,但这个pkl是在python2.7环境下存储的
首先读取的时候要加encoding=’bytes’,其他编码均会报错ordinal not in range(128)
with open(opt.infos_path,'rb') as f:
infos = cPickle.load(f, encoding='bytes')
这个infos读进来是一个dict,dict里每个key中装了1个对象
打印infos.keys(),输出
dict_keys([b’epoch’, b’iter’, b’opt’, b’split_ix’])
说明这个dict的key是由byte编码的
原代码如下
opt.input_fc_dir = infos['opt'].input_fc_dir
我改为
opt.input_fc_dir =