tensorflow stuck,tensorflow还没有session run就停下来不动了

最近在把pixellink(https://github.com/ZJULearning/pixel_link)主网换成,densenet,参考

https://github.com/pudae/tensorflow-densenet

结果 tensorflow stuck,tensorflow还没有session run就停下来不动了,

nvidia-smi发现gpu是空的,top一下,发现,那个程序,占用了很少的cpu,mem

找了各种办法,pdb,print,tf.logging.info

最后把tensorfow网络没有用到的部分,注释掉,就可以运行了。

多次遇到这个问题,总结主要是两个原因导致:

1.模型太大了,减小batch size试试

2 tf计算梯度的时候,发现梯度无法计算,打印出来就是none, 导致这个情况的原因,可能有些计算没有贡献给最终的 loss

  调试这种情况,就是打印出来梯度。

clone_gradients = optimizer.compute_gradients(total_clone_loss)
for grad_and_vars in zip(*clone_grads): 
    tf.logging.info("clone_grads"+str(grad_and_vars))

  最后一行会打印出来,梯度为None

INFO:tensorflow:after clone_grads((<tf.Tensor 'clone_0/gradients/clone_0/densenet_small/last_conv_block/last_conv1x1/BiasAdd_grad/tuple/control_dependency_1:0' shape=(8,) dtype=float32>, <tf.Variable 'densenet_small/last_conv_block/last_conv1x1/biases:0' shape=(8,) dtype=float32_ref>),)
INFO:tensorflow:after clone_grads((None, <tf.Variable 'pixel_cls/pixel_link_symbol_directed_local_connected_layer_8_16_16_8/need_judge_direction__8_16_16_8/Conv/weights:0' shape=(1, 16, 8, 1) dtype=float32_ref>),)

下面是stackoverflow 的回答

猜你喜欢

转载自blog.csdn.net/northeastsqure/article/details/86611437