【问题标题】:Out of memory error for convolution using Theano使用 Theano 进行卷积的内存不足错误
【发布时间】:2016-08-13 10:37:50
【问题描述】:

我在 Theano 中做卷积:

theano.tensor.nnet.conv.conv2d(x,h, border_mode='full') 

内存不足,我收到以下消息:

RuntimeError: GpuCorrMM failed to allocate working memory of 3591 x 319086

Apply node that caused the error: GpuCorrMM_gradInputs{valid, (1, 1)}(GpuContiguous.0, GpuContiguous.0)
Inputs types: [CudaNdarrayType(float32, (True, False, True, False)), CudaNdarrayType(float32, (False, True, False, False))]
Inputs shapes: [(1, 513, 1, 7), (1, 1, 513, 622)]
Inputs strides: [(0, 7, 0, 1), (0, 0, 622, 1)]
Inputs values: ['not shown', 'not shown']

我已尝试将 theano 标志设置为“optimizer_ exclude=conv_dnn”,但仍然没有成功。有没有办法解决这个问题?

【问题讨论】:

    标签: machine-learning neural-network theano conv-neural-network convolution


    【解决方案1】:

    您正在尝试分配一个需要 9TB 内存的矩阵。单个神经元需要 2.5GB 的内存。对于此类问题,我知道的唯一优化是减少单元数量或购买更多 RAM。大量 RAM :)

    【讨论】:

    • 好吧。或者只是简单的旧的降维或下采样;)
    【解决方案2】:

    对我来说,我在运行时禁用了 g++,只需从路径变量中删除 (MinGW) bin 目录即可。处理时间很慢,但它完成了过程。

    我的程序执行环境:OS Windows Vista 32 位,CPU Intel 2.16 GHz,RAM 4.00 GB,无 GPU

    【讨论】:

      猜你喜欢
      • 2018-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      相关资源
      最近更新 更多