任何解决酸洗错误的简单解决方案

时间:2017-01-30 14:54:50

标签: python

我使用savez来保存重量。以下是我的代码:

class vgg16:
    def __init__(self, imgs1,imgs2, weights=None, sess=None):
    .........

        self.weight_list=[]
        self.keys=[]

       ........
    self.SaveWeights()
....neural network............
def SaveWeights(self):

    tmp = file("vgg16_predict.npz",'wb')
    np.savez(self,**dict(zip(self.keys, self.weight_list)))
    tmp.close

我不断收到酸洗错误。提供了不同的解决方案。但有没有最简单的方法来实现这一目标? 这是追溯:

Traceback (most recent call last):
  File "f.py", line 350, in <module>
    vgg = vgg16(imgs1,imgs2, 'vgg16_weights.npz', sess)
  File "f.py", line 43, in __init__
    self.SaveWeights()
  File "f.py", line 339, in SaveWeights
    np.savez(self,**dict(zip(self.keys, self.weight_list)))
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 574, in savez
    _savez(file, args, kwds, False)
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 639, in _savez
    pickle_kwargs=pickle_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/format.py", line 573, in write_array
    pickle.dump(array, fp, protocol=2, **pickle_kwargs)
cPickle.PicklingError: Can't pickle <type 'module'>: attribute lookup __builtin__.module failed
Exception AttributeError: "vgg16 instance has no attribute 'tell'" in <bound method ZipFile.__del__ of <zipfile.ZipFile object at 0x7f812dec99d0>> ignored

1 个答案:

答案 0 :(得分:0)

你需要挑选一个文件。只需直接使用路径:

np.savez("vgg16_predict.npz", **dict(zip(self.keys, self.weight_list)))

所以,这应该是你完整的方法:

def SaveWeights(self):
    np.savez("vgg16_predict.npz", **dict(zip(self.keys, self.weight_list)))
相关问题