无法在 python 中加载 HDF5
Can't load HDF5 in python
我正在学习本教程:https://github.com/fastai/fastai/tree/master/courses/dl2/imdb_scripts
我下载了第 3b 部分中的预训练模型。
我想打开 .h5 文件和 look/use 权重。我尝试使用 python 来执行此操作,但它没有打开。
这是我使用的代码:
import tables
import pandas as pd
filename = “…bwd_wt103.h5”
file = tables.open_file(filename)
这是错误:
OSError: HDF5 error back trace
File “C:\ci\hdf5_1525883595717\work\src\H5F.c”, line 511, in H5Fopen
unable to open file
File “C:\ci\hdf5_1525883595717\work\src\H5Fint.c”, line 1604, in H5F_open
unable to read superblock
File “C:\ci\hdf5_1525883595717\work\src\H5Fsuper.c”, line 413, in H5F__super_read
file signature not found
End of HDF5 error back trace
Unable to open/create file 'C:/Users/Rishabh/Documents/School and Work/Classes/8
Fall2019/Senior Design/ULMFiT/Wiki Data/wt103/models/bwd_wt103.h5'
我还使用了 The HDF Group HDF Viewer:https://support.hdfgroup.org/products/java/release/download.html
但这也没有用。它给出了一个错误,说“无法打开文件......不支持的格式”
有没有办法在Python中加载权重?我最终想访问堆叠 LSTMS 的最后一层来创建词嵌入。
提前致谢。
那是因为它是手电筒模型。您可以使用 torch
将其加载到本地机器上,如下所示:
>>> import torch
>>> filename = "bwd_wt103.h5"
>>> f = torch.load(filename, map_location=torch.device('cpu'))
现在,让我们来探索一下:
>>> type(f)
OrderedDict
>>> len(f.keys())
15
>>> list(f.keys())
['0.encoder.weight',
'0.encoder_with_dropout.embed.weight',
'0.rnns.0.module.weight_ih_l0',
'0.rnns.0.module.bias_ih_l0',
'0.rnns.0.module.bias_hh_l0',
'0.rnns.0.module.weight_hh_l0_raw',
'0.rnns.1.module.weight_ih_l0',
'0.rnns.1.module.bias_ih_l0',
'0.rnns.1.module.bias_hh_l0',
'0.rnns.1.module.weight_hh_l0_raw',
'0.rnns.2.module.weight_ih_l0',
'0.rnns.2.module.bias_ih_l0',
'0.rnns.2.module.bias_hh_l0',
'0.rnns.2.module.weight_hh_l0_raw',
'1.decoder.weight']
您可以像这样访问 0.rnns.2.module.weight_hh_l0_raw
的权重:
>>> wts = f['0.rnns.2.module.weight_hh_l0_raw']
>>> wts.shape
torch.Size([1600, 400])
我正在学习本教程:https://github.com/fastai/fastai/tree/master/courses/dl2/imdb_scripts
我下载了第 3b 部分中的预训练模型。 我想打开 .h5 文件和 look/use 权重。我尝试使用 python 来执行此操作,但它没有打开。
这是我使用的代码:
import tables
import pandas as pd
filename = “…bwd_wt103.h5”
file = tables.open_file(filename)
这是错误:
OSError: HDF5 error back trace
File “C:\ci\hdf5_1525883595717\work\src\H5F.c”, line 511, in H5Fopen
unable to open file
File “C:\ci\hdf5_1525883595717\work\src\H5Fint.c”, line 1604, in H5F_open
unable to read superblock
File “C:\ci\hdf5_1525883595717\work\src\H5Fsuper.c”, line 413, in H5F__super_read
file signature not found
End of HDF5 error back trace
Unable to open/create file 'C:/Users/Rishabh/Documents/School and Work/Classes/8
Fall2019/Senior Design/ULMFiT/Wiki Data/wt103/models/bwd_wt103.h5'
我还使用了 The HDF Group HDF Viewer:https://support.hdfgroup.org/products/java/release/download.html
但这也没有用。它给出了一个错误,说“无法打开文件......不支持的格式”
有没有办法在Python中加载权重?我最终想访问堆叠 LSTMS 的最后一层来创建词嵌入。
提前致谢。
那是因为它是手电筒模型。您可以使用 torch
将其加载到本地机器上,如下所示:
>>> import torch
>>> filename = "bwd_wt103.h5"
>>> f = torch.load(filename, map_location=torch.device('cpu'))
现在,让我们来探索一下:
>>> type(f)
OrderedDict
>>> len(f.keys())
15
>>> list(f.keys())
['0.encoder.weight',
'0.encoder_with_dropout.embed.weight',
'0.rnns.0.module.weight_ih_l0',
'0.rnns.0.module.bias_ih_l0',
'0.rnns.0.module.bias_hh_l0',
'0.rnns.0.module.weight_hh_l0_raw',
'0.rnns.1.module.weight_ih_l0',
'0.rnns.1.module.bias_ih_l0',
'0.rnns.1.module.bias_hh_l0',
'0.rnns.1.module.weight_hh_l0_raw',
'0.rnns.2.module.weight_ih_l0',
'0.rnns.2.module.bias_ih_l0',
'0.rnns.2.module.bias_hh_l0',
'0.rnns.2.module.weight_hh_l0_raw',
'1.decoder.weight']
您可以像这样访问 0.rnns.2.module.weight_hh_l0_raw
的权重:
>>> wts = f['0.rnns.2.module.weight_hh_l0_raw']
>>> wts.shape
torch.Size([1600, 400])