我面临一个OOM错误,整个训练我的tensorflow模型,结构如下:
用tf.nn.rnn_cell.DropoutWrapper(tf.nn.rnn_cell.LSTMCell) #forward 2* tf.nn.rnn_cell.DropoutWrapper(tf.nn.rnn_cell.LSTMCell) #向后tf.nn.bidirectional_dynamic_rnn初始化的tf.contrib.layers.embed_sequence将上面的层包装为输出层
我试图将批处理的大小降低到64,我的输入数据被填充到1500,而我的词汇表大小是8938。
我使用的集群非常强大(https://wiki.calculquebec.ca/w/Helios/en),我使用了两个节点,每个节点有8个GPU,但仍然得到了这个错误:
2019-02-23 02:55:16.366766: W tensorflow/core/framework/op_kernel.cc:1273] OP_REQUIRES在reverse_op.cc:270上失败:资源耗尽: OOM,当使用shape2000,800,300分配张量时,类型浮动在/作业:localhost/复制品:0/任务:0/设备:GPU:1由分配器GPU_1_bfc
我正在使用带有MirroredStrategy的估值器API,但仍然没有用,是否有一种方法可以让tensorflow使用GPU运行培训,并将张量存储在主机器内存中?欢迎任何其他建议。
发布于 2019-02-24 02:04:24
使用GPU运行特定操作(例如,训练期间的某些张量乘法)需要将这些张量存储在GPU上。
您可能希望使用Tensorboard或诸如此类的操作来查看计算图表所需的内存最多的操作。特别是,嵌入和LSTM之间的第一个链接可能是罪魁祸首,您需要在某种程度上缩小这个范围。
https://stackoverflow.com/questions/54847929
复制相似问题