mariolew / Deep-Alignment-Network-tensorflow

A re-implementation of Deep-Alignment-Network using TensorFlow
111 stars 30 forks source link

mobilenet training #9

Open AaboutL opened 6 years ago

AaboutL commented 6 years ago

你好, 我用你的mobilenet版本来从头训练DAN,使用工程提供的脚本生成的数据集,只训练stage1,训了两天,loss已经不在下降,但是测试效果很差。对于mobilenet的训练,您有没有什么训练经验可以分享一下吗?之前用mobilenet从头训练其他的任务,效果也不好。 谢谢!

mariolew commented 6 years ago

你好,你测试时normalize了吗,我自己训过mobilenetv2,效果还可以啊。

lucaslu1987 commented 6 years ago

我的也很难收敛,数据集你是用的300W么,还是MENPO的。

mariolew commented 6 years ago

我训过mobilenetv2,这个mobilenet没有训过,回头我把v2的代码发上来你再试试?我就300w

lucaslu1987 commented 6 years ago

好的,期待你的mobilenet V2,非常感谢

mariolew commented 6 years ago

@lucaslu1987 已上传,请查看,有问题请issue沟通。

lucaslu1987 commented 6 years ago

你好,很感谢你的代码。我用你的代码训练stage1, 训练到100个epoch时,训练loss稳定在0.075左右,不再下降,测试集loss也不再下降,降lr也没有效果。实测几个数据集和paper的差距也比较大。想了解一下你训练的模型大概是什么样的效果。另外你的模型没有用Meanshape去回归,而是直接回归landmark,不知是出于什么考虑。谢谢

mariolew commented 6 years ago

不回归残差,直接回归gt也是可以的,我那个mobilenetv2并没有级联,所以不必和meanshape相关,很多论文也是这样的。然后,mobilenetv2肯定达不到论文效果的,因为模型小很多。对于原始版本的dan,我也没能完全复现论文效果,但是差距比较小(5.3vs5.0),因为论文没有说明stage1和2到底训多少个epoch,实验也需要很长时间。如果你有更多数据,用mobilenetv2应该也可以得到不错的结果。

lucaslu1987 commented 6 years ago

那你的mobilenetv2版本最好在测试集上有测试么,具体的测试误差有么。

mariolew commented 6 years ago

我用了一个jiankang deng博士主页上提供的数据集,其实就是一个有68点标注的开源数据合集,除去300w测试集做的训练,mobilenetv2在300w的困难子集能达到8.3的平均归一化误差。

lucaslu1987 commented 6 years ago

非常感谢您提供的数据链接。我用你说的数据集扩充到15W左右,直接用你的网络和参数训练,到30个epoch时,loss几乎已经不下降,和你说的效果还有一定的差距。不知道你自己训练时,数据增强的参数和训练的超参有没有调整。

mariolew commented 6 years ago

你确定用的那个数据集吗,那个数据集增强后应该是40多万,数据集本身2万多,增强20倍。我没有改增强的参数。

lucaslu1987 commented 6 years ago

好吧,我没有增强20倍,需要内存太多,那我改一下数据预处理代码。

mariolew commented 6 years ago

其实是增强10倍,因为有翻转,所以就是20倍,那个数字写10即可。

lucaslu1987 commented 6 years ago

嗯,内存太小啦,原始的数据增强代码太耗内存。

mariolew commented 6 years ago

内存不足的话,可以存成图片,然后一张一张读取,需要稍微改一点代码。

lucaslu1987 commented 6 years ago

hello, 又来请教问题了。还是mobilenet的问题,我将数据扩展成40多万了,用了另外一个小网络训练,能训练到你说的challenge set8.3的程度。但是用你的mobilenetv2代码,40多个epoch了,似乎loss已经没有下降的迹象了,准确率确没有你达到的效果。所以能否告知一下你训练时的参数,batch size, stop epoch,learning rate 等等。

mariolew commented 6 years ago

你达到多少了?我的batch size是64,lr是0.001,epoch设个100,8.3应该是没问题的呢。

lucaslu1987 commented 6 years ago

那就怪了,我100个epoch的时候,错误还是停留在10以上。我用另外一个小网络就训练的很好,难道是跟mobilenet八字不合。

mariolew commented 6 years ago

另外一个小网络是哪个?然后40万数据是基于多少数据增强得到的?

lucaslu1987 commented 6 years ago

自己用inception加shortcut等模块搭的。数据就是用你说的那个2万多张图片

mariolew commented 6 years ago

那你还是用的原来的loss吗,还是换了loss,还是用的Adam吗,还是换了?

lucaslu1987 commented 6 years ago

mobilenet就是用的你的代码,参数都没变,所以非常奇怪。暂时找不到原因了,先放弃了。

mariolew commented 6 years ago

我回头看看是不是我的代码有问题吧,看是不是和我本地的一致。@lucaslu1987 你是用的model_cnn.py里的模型吗,应该用那里面的,不是用那个mobilenet里面的。

lucaslu1987 commented 6 years ago

是的,model_cnn.py