【问题标题】:Memory error using Theano on AWS GPU在 AWS GPU 上使用 Theano 的内存错误
【发布时间】:2016-03-03 09:43:17
【问题描述】:

我正在为分类任务构建一个简单的前馈网络。 我在 AWS g2.2xlarge 实例上的 theano 上使用 keras。我的网络配置如下:

batch_size = 32
nb_epoch = 50
dimof_input = 8100
dimof_middle = 16384
dimof_end = 16384
dropout = 0.2
dimof_output = 3

print('Build model...')

model = Sequential()
model.add(Dense(dimof_middle, input_shape=(dimof_input,)))
model.add(Activation('relu'))
model.add(Dropout(0.2))

model.add(Dense(dimof_end))
model.add(Activation('relu'))
model.add(Dropout(0.2))

#model.add(Dense(dimof_output))
#model.add(Activation('sigmoid'))
#model.add(Dense(dimof_output, activation='softmax'))

model.add(Dense(dimof_output))
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam')

当我编译模型时,我得到 MemoryError

MemoryError: ('Error allocating 1073741824 bytes of device memory (CNMEM_STATUS_OUT_OF_MEMORY).', "you might consider using 'theano.shared(..., borrow=True)'")

来自 AWS,这是一台 4GB 显存、16GB 内存的机器。 如果我将 'dimof_middle' 的值减半到 8196。一切正常。

1073741824 字节 ~ 1 GB,完全在 GPU 内存中

我做错了什么?任何帮助将非常感激!

【问题讨论】:

    标签: amazon-web-services theano deep-learning keras


    【解决方案1】:

    错误消息与分配的内存总量无关。它与失败时尝试分配的数量有关。 Theano 在计算过程中分配和释放内存。

    您可以禁用 CNMeM 并使用 nvidia-smi 找出实际分配情况。

    http://deeplearning.net/software/theano/library/config.html#envvar-THEANORC

    【讨论】:

      猜你喜欢
      • 2018-11-15
      • 2017-05-13
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 2016-01-12
      • 2015-09-12
      • 1970-01-01
      相关资源
      最近更新 更多