Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:google计算引擎上的内存错误_Python_Linux_Google Compute Engine - Fatal编程技术网

Python:google计算引擎上的内存错误

Python:google计算引擎上的内存错误,python,linux,google-compute-engine,Python,Linux,Google Compute Engine,在google compute engine上,我运行以下操作: z = np.zeros((10000, 32, 32, 3)) 得到 MemoryError回溯(最近的调用) 最后)在 ---->1 z=np.零((10000,32,32,3)) MemoryError:无法分配234。具有形状的数组的MiB (10000,32,32,3)和数据类型float64 这看起来像是当前的操作系统配置阻止我分配大数据块,这对我来说很奇怪 如何获得需要分配的内存 这是用于,用于将CIFAR-10

在google compute engine上,我运行以下操作:

z = np.zeros((10000, 32, 32, 3))
得到

MemoryError回溯(最近的调用) 最后)在 ---->1 z=np.零((10000,32,32,3))

MemoryError:无法分配234。具有形状的数组的MiB (10000,32,32,3)和数据类型float64

这看起来像是当前的操作系统配置阻止我分配大数据块,这对我来说很奇怪

如何获得需要分配的内存



这是用于,用于将CIFAR-10加载到内存。

我猜您尝试创建的阵列对于google计算机引擎来说可能太大了。这样想:

您正试图为大小为10000*32*32*3=3072000个单元的4d阵列分配内存,这太多了!考虑到python中flaot64的标准大小是8,那么一个命令就可以分配245760000字节(245MB)的数据

您可以使用以下命令分配大小类似的字节数组:

z = bytearray(245760000)
但我不知道你用这个干什么,所以我不知道这是否对你有帮助

即使在谷歌计算机引擎上有一个分配内存量的解决方案,我还是建议你考虑一下,如果你真的需要这么多的空间。 例如,如果您仍然需要一个如此大的数组,但每个单元格的值为0或1,则可以将其设置为二进制数组,该数组的空间将减少64倍


再次重申,如果你真的需要那么大的空间,如果你真的需要那么大的数组,那么请重新考虑,而不要在如何存储所有数据方面更具创造性。

是的,我需要在memry中使用它,因为它是cifar-10数据集。如果它留在磁盘上,训练将非常缓慢。无论如何,机器的复位解决了这个问题。不知道是什么原因造成的。