MXNet中的“无法分配给CPU内存”是什么意思?

时间:2018-08-24 03:09:56

标签: python memory mxnet

奇怪的是,关于stackoverflow尚无此类问题。

我正在使用MXNet,尝试在PC上运行VQA示例,并使用{ "name": "Person", "plural": "people", "base": "User", "idInjection": false, "options": { "validateUpsert": true, "postgresql": { "tableName": "people" } }, "hidden": [ "emailVerified", "realm", "username", ], "properties": { "first-name": { "type": "string", "postgresql": { "columnName": "first_name" } }, "last-name": { "type": "string", "postgresql": { "columnName": "last_name" } }, "email": { "type": "string" }, ... }, "validations": [], "relations": { "customer": { "type": "belongsTo", "model": "Customer", "foreignKey": "customer_id" } }, "acls": [], "methods": {} } 读取数据,但是

mx.io.DataIter

在这两个代码上

mxnet.base.MXNetError: [11:05:07] c:\projects\mxnet-distro-win\mxnet-build\src\storage\./cpu_device_storage.h:70: Failed to allocate CPU Memory

上面是我的代码,下面是库代码

那么“无法分配给CPU内存”到底是什么意思?

File "E:\PyProjects\TestVqa\VQAtrainIter.py", line 71, in reset self.nd_img.append(mx.ndarray.array(self.img, dtype=self.dtype)) File "E:\PyProjects\Pro\venv\lib\site-packages\mxnet\ndarray\utils.py", line 146, in array return _array(source_array, ctx=ctx, dtype=dtype) 的代码部分如下

VQAtrainIter.py

1 个答案:

答案 0 :(得分:1)

根据您所说的,您正在使用npz,它始终完全加载到内存中。 DataIter确实是按批获取数据的,但是如果源是npz(它本身在内存中),则所有内容都必须放入内存中。 DataIter的作用是,它使您不需要两倍的内存,因为它将一小部分数据从numpy数组复制到mxnet.nd.NDArray进行处理。