先实现图像合成,再用合成的图像进行分割。图像合成部分的代码是开源的,所以没有问题,然后我在合成代码的基础上加上分割,运行到step165时,出现错误:
查阅了很多资料,包括生成core文件,然后用gdb在linux环境下调试(gdb调试大多是针对c的,而我的是python),都没有解决问题。
突然,进logs查看保存的模型时,发现meta文件越来越大,甚至有1.7G,我再看另外代码保存的模型中,meta文件大小几乎没有发生变化,所以我意识到可能是因为计算图过大,导致内存溢出。
再查阅资料,发现可以在每次构图完成过后用这个函数:sess.graph.finalize(),再次运行程序,就会出错,然后根据出错的地方去修改代码。我出错的地方如下:
在softmax出错,然后把seg_out=tf.nn.softmax(seg_out)放进初始化的网络中
最终解决问题,meta文件的大小也没有随着训练次数增加而增大。