在...的帮助下 user2357112 ,这是通过在Python 3中使用异常链来查找异常(已更新的问题)解决的:
user2357112
该 transformer 管道正在返回 numpy.array 的 scipy.sparse.csr_matrix 矩阵而不是2-d numpy.array 。通过添加更改以下行来使用 toarray 转换的方法,脚本将运行。
transformer
numpy.array
scipy.sparse.csr_matrix
toarray
preprocessed_data = np.array([row.toarray() for row in transformer.fit_transform(data)])
的 最佳解决方案 强> : toarray 在a上使用时,在内存消耗方面是低效的 scipy.sparse.csr_matrix 。在版本中 1.10 的 mxnet ,一个人可以使用 mxnet.nd.sparse.array 更有效地存储数据:
1.10
mxnet
mxnet.nd.sparse.array
... preprocessed_data = mx.nd.sparse.array(transformer.fit_transform(data)) training_data = mx.io.NDArrayIter(data=preprocessed_data, label=preprocessed_labels, batch_size=5, last_batch_handle='discard') for i, batch in enumerate(training_data): print(batch)
唯一需要注意的是必须使用 last_batch_handle='discard' 关键字参数 NDArrayIter (的功能 last_batch_handle 这里 )
last_batch_handle='discard'
NDArrayIter
last_batch_handle