如何更改此功能以使其更高效?我不断收到 MemoryErrordef vectorize_sequences(sequences, dimension=10000): results = np.zeros((len(sequences), dimension)) for i, sequence in enumerate(sequences): results[i, sequence] = 1. return results我在这里调用函数:x_train = vectorize_sequences(train_data)x_test = vectorize_sequences(test_data)Train和Test数据是用于情感分析的IMDB数据集,即(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)编辑:我在具有 4 GB RAM 的 64 位 Ubuntu 系统上运行它。这是回溯:Traceback (most recent call last): File "/home/uttam/PycharmProjects/IMDB/imdb.py", line 29, in <module> x_test = vectorize_sequences(test_data) File "/home/uttam/PycharmProjects/IMDB/imdb.py", line 20, in vectorize_sequences results = np.zeros((len(sequences), dimension))MemoryError
1 回答

月关宝盒
TA贡献1772条经验 获得超5个赞
您的数组似乎是 10k x 10k,即每个 64 位的 1 亿个元素(因为默认 dtype 是 float64)。所以这是 8 亿字节,也就是 763 兆字节。
如果您使用 float32,它将把内存使用量减半:
np.zeros((len(sequences), dimension), dtype=np.float32)
或者,如果您只关心 0 和 1,这将减少 88%:
np.zeros((len(sequences), dimension), dtype=np.int8)
添加回答
举报
0/150
提交
取消