【问题标题】:While training deep learning model using tensorflow library i am getting error: ResourceExhaustedError OOM on gpu(128 gb RAM) Kindly help me在使用 tensorflow 库训练深度学习模型时出现错误:ResourceExhaustedError OOM on gpu(128 gb RAM) 请帮助我
【发布时间】:2019-12-12 00:45:30
【问题描述】:

C:\Users\CVL-Acoustics\Documents\bangla-sentence-correction-master>python train.py 坐下来放松一下,训练模型需要一些时间…… 词汇量 250000 警告:tensorflow:来自 C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\ops\rnn.py:417:不推荐使用 seq_dim 调用 reverse_sequence(来自 tensorflow.python.ops.array_ops)并将在未来的版本中删除。 更新说明: seq_dim 已弃用,请改用 seq_axis 警告:tensorflow:来自 C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\util\deprecation.py:432:不推荐使用 batch_dim 调用 reverse_sequence(来自 tensorflow.python.ops.array_ops)并将在未来的版本中删除。 更新说明: batch_dim 已弃用,请改用 batch_axis 警告:tensorflow:来自 train.py:228:softmax_cross_entropy_with_logits(来自 tensorflow.python.ops.nn_ops)已弃用,将在未来版本中删除。 更新说明:

TensorFlow 的未来主要版本将允许梯度流动 默认情况下进入 backprop 上的标签输入。

参见@{tf.nn.softmax_cross_entropy_with_logits_v2}。

时代 1 培训 Traceback(最近一次通话最后一次): _do_call 中的文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\client\session.py”,第 1322 行 返回 fn(*args) _run_fn 中的文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\client\session.py”,第 1307 行 选项,feed_dict,fetch_list,target_list,run_metadata) _call_tf_sessionrun 中的文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\client\session.py”,第 1409 行 运行元数据) tensorflow.python.framework.errors_impl.ResourceExhaustedError:OOM 分配具有形状 [6656,250000] 的张量并通过分配器 GPU_0_bfc 在 /job:localhost/replica:0/task:0/device:GPU:0 上键入 float [[节点:MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:GPU:0"](Reshape, Variable_1/read) ]] 提示:如果您想在 OOM 发生时查看已分配张量的列表,请将 report_tensor_allocations_upon_oom 添加到 RunOptions 以获取当前分配信息。

     [[Node: rnn/while/cond/Add/_87 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_421_rnn/while/cond/Add", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](^_clooprnn/while/cond/ArgMax/dimension/_1)]]

提示:如果您想在 OOM 发生时查看已分配张量的列表,请将 report_tensor_allocations_upon_oom 添加到 RunOptions 以获取当前分配信息。

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次): 文件“train.py”,第 321 行,在 _, l = sess.run([train_op, loss], fd) 文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\client\session.py”,第 900 行,运行中 run_metadata_ptr) _run 中的文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\client\session.py”,第 1135 行 feed_dict_tensor、选项、run_metadata) 文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\client\session.py”,第 1316 行,在 _do_run 运行元数据) _do_call 中的文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\client\session.py”,第 1335 行 raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.ResourceExhaustedError:OOM 分配具有形状 [6656,250000] 的张量并通过分配器 GPU_0_bfc 在 /job:localhost/replica:0/task:0/device:GPU:0 上键入 float [[节点:MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:GPU:0"](Reshape, Variable_1/read) ]] 提示:如果您想在 OOM 发生时查看已分配张量的列表,请将 report_tensor_allocations_upon_oom 添加到 RunOptions 以获取当前分配信息。

     [[Node: rnn/while/cond/Add/_87 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_421_rnn/while/cond/Add", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](^_clooprnn/while/cond/ArgMax/dimension/_1)]]

提示:如果您想在 OOM 发生时查看已分配张量的列表,请将 report_tensor_allocations_upon_oom 添加到 RunOptions 以获取当前分配信息。

由操作“MatMul”引起,定义在: 文件“train.py”,第 218 行,在 decoder_logits_flat = tf.add(tf.matmul(decoder_outputs_flat, W), b) 文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\ops\math_ops.py”,第 2014 行,在 matmul a, b, transpose_a=transpose_a, transpose_b=transpose_b, name=name) 文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_math_ops.py”,第 4278 行,在 mat_mul 名称=名称) _apply_op_helper 中的文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py”,第 787 行 op_def=op_def) 文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py”,第 3414 行,在 create_op op_def=op_def) init 中的文件“C:\Users\CVL-Acoustics\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py”,第 1740 行 self._traceback = self._graph._extract_stack() # pylint: disable=protected-access

ResourceExhaustedError(有关回溯,请参见上文):OOM 分配形状为 [6656,250000] 的张量并通过分配器 GPU_0_bfc 在 /job:localhost/replica:0/task:0/device:GPU:0 上键入 float [[节点:MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:GPU:0"](Reshape, Variable_1/read) ]] 提示:如果您想在 OOM 发生时查看已分配张量的列表,请将 report_tensor_allocations_upon_oom 添加到 RunOptions 以获取当前分配信息。

     [[Node: rnn/while/cond/Add/_87 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_421_rnn/while/cond/Add", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](^_clooprnn/while/cond/ArgMax/dimension/_1)]]

提示:如果您想在 OOM 发生时查看已分配张量的列表,请将 report_tensor_allocations_upon_oom 添加到 RunOptions 以获取当前分配信息。

【问题讨论】:

  • 听起来内存不够了
  • 你能帮我解决这个问题吗@JammyDodger

标签: python tensorflow deep-learning nlp recurrent-neural-network


【解决方案1】:

发生这种情况的原因有很多。

  • 尝试减少网络的参数。
  • 尝试减小批量大小。
  • 检查当前是否有另一个正在分配内存的内核处于活动状态。

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多