初始化大型bcolz carray时出错,“以字节为单位的dtype大小必须适合C int”

时间:2019-06-25 13:50:11

标签: python python-3.x numpy bcolz

我想将CNN预测存储在bcolz carray中。预测蒙版是形状(15、33216、5056)的numpy数组。我之前用来初始化carray的命令是:

bcolz.carray(np.zeros((0, 15, 33216, 5056), dtype=prediction_array_dtype), mode="w")

然后,我将每个预测数组附加到carray上。

以这种方式初始化carray时,我第一次遇到以下错误:

  

“ ValueError:固定类型元组中的形状无效:dtype大小(以字节为单位)   必须适合C int。”

我不太确定这意味着什么或我能做什么。

我尝试了一种替代方法:

bcolz.carray(np.zeros((0,), dtype=np.ndarray), mode="w")

然后,我还可以将每个预测数组附加到carray上。但是,面膜的存储方式不同。如果我从这种思路获得第一个元素,它将是形状(33216,5056)而不是(15,33216,5056)。虽然我通常的做法对我来说似乎更直观,但实际上我不知道我是否应该偏重一个(以及为什么我的上述尝试失败而另一个成功了)。

总结一下,我的问题明确是:

  1. 该错误是什么意思?
  2. 如何避免此错误?
  3. 我提到的两种初始化方法中的一种优于另一种吗?为什么?

0 个答案:

没有答案