作者AzureDay (麦)
看板C_and_CPP
标题[问题] Deep learning net参数调整
时间Mon Mar 21 11:03:49 2016
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux, Tensorflow
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
OpenCV
问题(Question):
目前做了一些实验,放了VOC2007的Data set下去做学习
只训练了分类问题,并把图片类别调整只剩为单一类别
去做softmax的分类学习
network为 5层conv 与 3层fc
再来接到softmax_with_loss
最佳化使用GradientDescentOptimizer
learning rate = 0.005
而初始weigth and biases 的参数为random_normal
其设定参数stddev=0.1
实验一 只考虑两张图(故意训练到overfitting)
做了两个部分的weight and biases value的init不同
会导致一个loss很高下不去,另一个则是会loss会降到很接近零
stddev=0.1 stddev=0.01
这种情况期其实想不通,麻烦各位大大指点
实验二
10张图 batch size 10的情况下(想训练到overfitting)
拿了两张图片可以训练到loss很小的参数来用
但是会撞到调整到某一次迭代後loss会变成超大
然後在下一次输出的值就变成nan
但经由调整参数後又可以降到loss很小(并且可以对训练资料预测正确)
实验三
拿了整个VOC2007的训练资料集做训练
batch size一样为10 训练参数一样 image就是整个训练资料集
其解果同实验二也会有一样的情形
net的参数需要重新调整
想询问的点是在於
这样做实验是否有问题?
如果image、batch size的数量不同,
初始参数也要跟着调整这样真的合理吗?
喂入的资料(Input):
VOC2007训练资料结果
预期的正确结果(Expected Output):
预测voc2007图片正确的分类
错误结果(Wrong Output):
学习无效 or 输出结果突然变成nan
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.66.243.96
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1458529436.A.48B.html
1F:推 schizophrena: deep learning\n的参数现在会调的人也只有发明者 03/21 12:56
2F:→ schizophrena: 他自己也承认他有时也是猜的 03/21 12:57
3F:→ AzureDay: 虽然当初在做测试已知参数调教可能都是猜的... 03/21 14:29
4F:→ AzureDay: 可是猜总要有方向去猜吧OTZ 03/21 14:29
5F:推 CaptainH: nn结构?初始值?优化方式? 03/21 15:04
6F:→ CaptainH: 你都不讲 谁会知道 03/21 15:05
7F:→ AzureDay: 感谢大大提醒,我漏了马上补上 03/21 15:43
C大已修正内文,如果有遗漏再麻烦您指点一下
※ 编辑: AzureDay (114.136.4.102), 03/21/2016 15:55:25
※ 编辑: AzureDay (114.136.4.102), 03/21/2016 15:56:05