Windaway / FCRN-Depth-Prediction-Tensorflow

Another FCRN for Depth Prediction implement with Tensorflow and Tensorlayer.
GNU General Public License v2.0
11 stars 4 forks source link

关于加载fcrn的ckpt的疑问 #5

Open jiao0805 opened 5 years ago

jiao0805 commented 5 years ago

你好:

我成功的运行了你的train代码,并且网络能够收敛,十分感谢你的分享! 但是有一个疑问,就是我下载了https://github.com/iro-cp/FCRN-DepthPrediction这份ckpt并且用你的代码在nyu数据集上直接进行了测试,但是测试出来的深度图是纯黑(似乎没有加载到权重等?)

想问问你有没有测试过ckpt加载这部分的代码,你成功的读取到权重了吗? 是否是我的tf版本的问题? 谢谢你的帮助!

stupidzzz commented 5 years ago

@jiao0805 请问你在训练的时候,那些参数有变过吗,我训练一个小时, image 这些都不怎么下降了,另外我是用的50000张数据,1500张测试数据

AvinsWang commented 5 years ago

应该是训练时间不够,在经过约3天(1080ti)训练之后的结果如下。数据约18000张图片,训练:测试=8:2。 image

jiao0805 commented 5 years ago

@stupidzzz 我训练集上的loss是能一直下降到个位数8,7这样的,但是测试集在20左右浮动,正确率也一直不高,出现严重的过拟合,我的数据集数量和你差不多。 @AvinsWang 你有看过测试集predict出来的深度图是什么样的吗?我的过拟合比较严重,测试集在epoch 5左右没有明显的进步呢。

Windaway commented 5 years ago

ckpt读取载入和训练没啥问题,我们测试倒是在自己的数据上做的,也的确能收敛,绝对误差能到一定程度。图像增广用的是从里面裁剪一个区域加曝光色调之类增广,不能加尺度变换。

Windaway commented 5 years ago

在下干活经常Write Only,后面事情就不管了。

stupidzzz commented 5 years ago

@jiao0805 请问在哪看的predict出来的深度图,我的目前还在训练,but暂时还没发现有预测的深度图。

jiao0805 commented 5 years ago

@stupidzzz 我是用tensorboard加了两行代码,把测试集输出的图像加进去了。

jiao0805 commented 5 years ago

@Windaway 我直接读取fcrn的ckpt然后在测试集上测试,并不能达到作者计算出来的精度。emmm估计是我的测试集跟她有出入吧。 请问你们自己的数据训练需要多久时间呢?acc能达到多少?。因为我也想应用到自己的数据上,但是过拟合比较严重,测试集准确率大概在30%左右就不动了 谢谢!

stupidzzz commented 5 years ago

@jiao0805 您好,我还是不太明白,我可以加一下你的QQ/微信请教一下吗?QQ:1051409705

Windaway commented 5 years ago

@jiao0805 单目深度估计与摄像头参数紧密相关,一般要求同分辨率下,同视场角才能比较,我记得我这个场景近距离中心区域内误差在10cm内能到70%左右么,记不太清了。

stupidzzz commented 5 years ago

@Windaway 我已经训练了三天了,但是我并没有发现测试集的输出图像,请问怎么看测试集的输出图像呢? 如他所说:

@stupidzzz 我是用tensorboard加了两行代码,把测试集输出的图像加进去了。 但是我已经快训练完了,不能再加两行代码,重新训练一遍吧,还有其他办法么。

Windaway commented 5 years ago

@stupidzzz 直接Restore ckpt istrain false测试咯。

jiao0805 commented 5 years ago

@stupidzzz 输出测试集的图像可以用python图像处理库的很多方法,比如scripy的imread还有PIL的im.save之类的函数,你可以看一下示例代码。只要把你计算loss使用的那个array存下来就好了。 另外我使用的是tensorboard,是tensorflow内置的一个工具,使用方法如下: 代码里: fcrn_train.py的550行左右有关于训练数据保存的代码,在下面加上: tf.summary.image("z_image_test",img_test_batch) tf.summary.image("z_pre_test", logits_test) tf.summary.image("z_label_test",label_test_batch) 使用: 找到fcrn文件夹然后在cmd中使用一下命令: tensorboard --logdir=[你保存下来的那个tensorboard文件] 然后打开浏览器,输入localhost:6606 然后就能看到啦。界面如下: https://blog.csdn.net/u013555719/article/details/81093804

jiao0805 commented 5 years ago

@Windaway 我说的不是实际的那个误差,是你在网络里面的loss和计算出来的accuracy,我在训练过程中,训练集上能达到acc90%,但是测试集上只有30%,不知道你是不是有相同的情况,就是测试集训练集上的表现差距很大,泛化能力不太好。

jiao0805 commented 5 years ago

@Windaway 我已经训练了三天了,但是我并没有发现测试集的输出图像,请问怎么看测试集的输出图像呢? 如他所说:

@stupidzzz 我是用tensorboard加了两行代码,把测试集输出的图像加进去了。 但是我已经快训练完了,不能再加两行代码,重新训练一遍吧,还有其他办法么。

最简单的办法是,你把代码里那个test的for循环挪到train前面,然后按我写的加上tf的代码,然后就直接就可以看了。或者按作者回你的,自己加个istrain就可以了。

Windaway commented 5 years ago

@jiao0805 我忘了生成的时候crop怎样,测试应该和训练一个crop比例,这个我写完了给学弟玩去了,所以后面他怎么折腾我就不管了。

1811081031 commented 5 years ago

@jiao0805 请问你在训练的时候,那些参数有变过吗,我训练一个小时, image 这些都不怎么下降了,另外我是用的50000张数据,1500张测试数据

请问您下载完代码之后有更改吗?我运行一直报错。

1811081031 commented 5 years ago

@stupidzzz输出测试集的图像可以用蟒图像处理库的很多方法,比如scripy的imread还有PIL的im.save之类的函数,你可以看一下示例代码。只要把你计算损失使用的那个阵列存下来就好了。另外 我使用的是tensorboard,是tensorflow内置的一个工具,使用方法如下: 代码里: fcrn_train.py的550行左右有关于训练数据保存的代码,在下面加上: tf.summary。 image(“z_image_test”,img_test_batch) tf.summary.image(“z_pre_test”,logits_test) tf.summary.image(“z_label_test”,label_test_batch) 使用: 找到fcrn文件夹然后在cmd中使用一下命令: tensorboard --logdir = [你保存下来的那个tensorboard文件] 然后打开浏览器,输入localhost:6606 然后就能看到啦。界面如下:https://blog.csdn.net/u013555719/article/details/81093804

关于我的联系方式:微信jiaojiao0805cc 但是人在国外常年不用微信QQ ......回复应该不会比github上及时多少〜有需要的话可以加了一起讨论。

您好,在训练的时候代码中的分辨率有过更改吗?我一直跳下面的这种错误。 image