Session中执行(你的graph).finalize(),如果报错则证明Session在计算过程中不断的向graph中增加结点,导致内存越来越满(GPU memory leak),计算效率降低。
以下面案列为例:batch_ys获取训练样本,batch_ys为样本标签,有0,1,2,3共4个类,tf中需要转换成[[1,0,0,0][0,1,0,0]]格式的标签,用tf.sparse_to_dense()实现,这个操作随着迭代步数的增加会不断向graph中增加结点。
#-------------------------------
batch_xs, batch_ys = sess.run([example_batch, example_label_batch])
index = tf.expand_dims(tf.range(TRAIN_

当使用Tensorflow训练模型时,随着迭代步数增加,计算效率可能下降,原因可能是Session在运行过程中不断向图(graph)添加节点,导致GPU内存泄漏。解决方案是在外部定义函数处理标签转换,如使用tf.sparse_to_dense(),并在Session外调用,以防止图中节点持续增长,从而保持计算效率。
最低0.47元/天 解锁文章
988

被折叠的 条评论
为什么被折叠?



