Jacobian数据集扩充的内存消耗

时间:2019-02-07 18:36:49

标签: python tensorflow cleverhans

我正在尝试从https://arxiv.org/abs/1602.02697复制结果, 但按照黑盒教程https://github.com/tensorflow/cleverhans/blob/master/cleverhans_tutorials/mnist_blackbox.py

使用尺寸 224x224x3 的图片

但是,我遇到了内存消耗错误(粘贴在下面)。在我看来,Jacobian数据集扩充可能是源问题: https://github.com/tensorflow/cleverhans/blob/master/cleverhans/utils_tf.py#L657

但是,我不知道如何检查。

我正在8GB GPU上运行代码。

是不是这种方法不能在较大的图像上使用?我怎样才能解决这个问题?该方法的复杂性是什么?

...
2019-02-07 18:21:32.984709: I tensorflow/core/common_runtime/bfc_allocator.cc:645] Sum Total of in-use chunks: 7.31GiB
2019-02-07 18:21:32.984715: I tensorflow/core/common_runtime/bfc_allocator.cc:647] Stats:
Limit:                  7860224000
InUse:                  7848987648
MaxInUse:               7848987648
NumAllocs:                10041921
MaxAllocSize:           2424832000

2019-02-07 18:21:32.984831: W tensorflow/core/common_runtime/bfc_allocator.cc:271] ****************************************************************************************************
2019-02-07 18:21:32.984849: W tensorflow/core/framework/op_kernel.cc:1273] OP_REQUIRES failed at transpose_op.cc:199 : Resource exhausted: OOM when allocating tensor with shape[4,256,56,56] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc

1 个答案:

答案 0 :(得分:0)

最可能的解释是,X_batch的大小在每次迭代p_idxs时都会加倍。如果您通过调用CleverHans中提供的batch_eval来代替L698-703,则即使在ImageNet上,您也很可能能够计算出这一点。如果这可以解决您的问题,请随时作为PR向GitHub上的CleverHans提交。