TypeError: '_io.BufferedWriter' object is not subscriptable
TypeError: '_io.BufferedWriter' object is not subscriptable
我在 .hdf5 文件中存储了一个巨大的数据集,我正试图将其拆分为多个组。 .hdf5 文件包含一个形状为 (2 555 904 x 1024 x 2)
的数组
我的代码的一个小例子如下:
import pickle
import h5py
import numpy as np
f = h5py.File('RML_2018.hdf5', 'r')
# Assembling M-PSK dataset
PSK_32 = f['X'][0:106496]
PSK_OQ = f['X'][638976:745472]
PSK_2 = f['X'][851968:958464]
PSK_8 = f['X'][958464:1064960]
PSK_16 = f['X'][1277952:1384448]
PSK_Q = f['X'][2023424:2129920]
M_PSK = np.concatenate([PSK_32, PSK_OQ, PSK_2, PSK_8, PSK_16, PSK_Q])
print('shape of M_PSK array :',M_PSK.shape)
del PSK_32
del PSK_OQ
del PSK_2
del PSK_8
del PSK_16
del PSK_Q
with open('Data/M_PSK.pkl', 'wb') as f:
pickle.dump(M_PSK, f, protocol=4)
# Assembling M-APSK dataset
APSK_16 = f['X'][106496:212992]
APSK_32 = f['X'][532480:638976]
APSK_64 = f['X'][1384448:1490944]
APSK_128= f['X'][1597440:1703936]
M_APSK = np.concatenate([APSK_16, APSK_32, APSK_64, APSK_128])
print('shape of M_APSK array :',M_APSK.shape)
del APSK_16
del APSK_32
del APSK_64
del APSK_128
with open('Data/M_APSK.pkl', 'wb') as f:
pickle.dump(M_APSK, f, protocol=4)
所以你可以看到我正在读取原始数据集的块,连接它们然后删除以节省内存,最后将连接的数组转储到 .pkl 文件
第一部分还可以。但后来我收到以下错误:
Traceback (most recent call last):
File "/home/nechi/PycharmProjects/CNN_MR_v2/cnn.py", line 28, in <module>
APSK_16 = f['X'][106496:212992]
TypeError: '_io.BufferedWriter' object is not subscriptable
谁能告诉我这个错误消息是什么,我明白了吗?
以及如何修复它?
谢谢
我的问题的答案是我打开了同名的.hdf文件和.pkl文件f
f = h5py.File('RML_2018.hdf5', 'r')
和
with open('Data/M_PSK.pkl', 'wb') as f:
pickle.dump(M_PSK, f, protocol=4)
这造成了混乱,所以我不得不为文件选择不同的名称,但它起作用了。
我在 .hdf5 文件中存储了一个巨大的数据集,我正试图将其拆分为多个组。 .hdf5 文件包含一个形状为 (2 555 904 x 1024 x 2)
的数组
我的代码的一个小例子如下:
import pickle
import h5py
import numpy as np
f = h5py.File('RML_2018.hdf5', 'r')
# Assembling M-PSK dataset
PSK_32 = f['X'][0:106496]
PSK_OQ = f['X'][638976:745472]
PSK_2 = f['X'][851968:958464]
PSK_8 = f['X'][958464:1064960]
PSK_16 = f['X'][1277952:1384448]
PSK_Q = f['X'][2023424:2129920]
M_PSK = np.concatenate([PSK_32, PSK_OQ, PSK_2, PSK_8, PSK_16, PSK_Q])
print('shape of M_PSK array :',M_PSK.shape)
del PSK_32
del PSK_OQ
del PSK_2
del PSK_8
del PSK_16
del PSK_Q
with open('Data/M_PSK.pkl', 'wb') as f:
pickle.dump(M_PSK, f, protocol=4)
# Assembling M-APSK dataset
APSK_16 = f['X'][106496:212992]
APSK_32 = f['X'][532480:638976]
APSK_64 = f['X'][1384448:1490944]
APSK_128= f['X'][1597440:1703936]
M_APSK = np.concatenate([APSK_16, APSK_32, APSK_64, APSK_128])
print('shape of M_APSK array :',M_APSK.shape)
del APSK_16
del APSK_32
del APSK_64
del APSK_128
with open('Data/M_APSK.pkl', 'wb') as f:
pickle.dump(M_APSK, f, protocol=4)
所以你可以看到我正在读取原始数据集的块,连接它们然后删除以节省内存,最后将连接的数组转储到 .pkl 文件
第一部分还可以。但后来我收到以下错误:
Traceback (most recent call last):
File "/home/nechi/PycharmProjects/CNN_MR_v2/cnn.py", line 28, in <module>
APSK_16 = f['X'][106496:212992]
TypeError: '_io.BufferedWriter' object is not subscriptable
谁能告诉我这个错误消息是什么,我明白了吗? 以及如何修复它?
谢谢
我的问题的答案是我打开了同名的.hdf文件和.pkl文件f
f = h5py.File('RML_2018.hdf5', 'r')
和
with open('Data/M_PSK.pkl', 'wb') as f:
pickle.dump(M_PSK, f, protocol=4)
这造成了混乱,所以我不得不为文件选择不同的名称,但它起作用了。