如何将t7模型转换为keras的h5? 我正在尝试为 c3d-sports1m-kinetics.t7 这样做,您可以在此处https://github.com/kenshohara/3D-ResNets/releases
我至少要问的是一种将t7模型加载到python(pytorch),然后提取其权重的方法,但是我无法使用 load_lua()函数做到这一点。
时出现错误我得到的错误如下:
Traceback (most recent call last):
File "convert_t7_to_hdf5.py", line 574, in <module>
a = load_lua("model.t7")
File "convert_t7_to_hdf5.py", line 571, in load_lua
return reader.read()
File "convert_t7_to_hdf5.py", line 542, in read
typeidx = self.read_int()
File "convert_t7_to_hdf5.py", line 440, in read_int
return self._read('i')
File "convert_t7_to_hdf5.py", line 431, in _read
result = struct.unpack(fmt, self.f.read(sz))
ValueError: read of closed file
答案 0 :(得分:1)
如该链接所述, https://github.com/pytorch/pytorch/issues/15307#issuecomment-448086741
使用 torchfile 软件包,加载成功。您可以将 model 的内容转储到文件中,然后了解其中的内容。每个层信息都存储为字典。了解模型架构将使解析内容更加容易。
>>> import torchfile
>>> model = torchfile.load('c3d-sports1m-kinetics.t7')
>>> module = model.modules[0].modules[0]
>>> module.name
b'conv1a'
>>> module['weight'].shape
(64, 3, 3, 3, 3)
>>> module['bias'].shape
(64,)