请深入学习的专家。
嘿,我最近正在使用python中的tensorflow训练图像来进行音调映射。为了获得更好的结果,我专注于使用贾斯汀·约翰逊( Johnson )从本论文中引入的知觉损失。
在我的实现中,我使用了损失的所有三个部分:从vgg16中提取的特征损失;从传输图像和地面真实图像中提取的L2像素级损失;以及总变化损失。我把它们归结为反向传播的损失。
函数yˆ=argminλcloss_content(y,yc)+λsloss_style(y,ys)+λTVloss_TV(y)
在本文中,我们可以看到损失的三个权重,λ,用来平衡它们,三个λ的值很可能在整个训练过程中被固定。
我的问题是,如果我在每一个时代(或几个时代)动态地改变λ,以调整这些损失的重要性,这有意义吗?例如,感知损失在前几个时代急剧收敛,而像素级的l2损失收敛得相当缓慢。因此,也许对于内容丢失(比如0.9 ),权重λ应该更高,但对于其他人来说应该更低。随着时间的推移,像素级的损失对于平滑图像和最小化工件将变得越来越重要。所以更好的办法是把它调高一点。就像根据不同的时代来改变学习速度一样。
博士后直接指导我反对我的想法。他认为这是在动态地改变训练模式,并可能导致训练的不一致性。
所以,赞成和反对,我需要一些想法..。
谢谢!
发布于 2018-07-25 20:55:50
如果不了解您正在使用的数据,就很难回答这个问题,但简而言之,动态损失不应该有那么大的影响,而且可能会产生完全相反的效果。如果您正在使用Keras,您可以简单地运行一个类似于以下内容的超参数调谐器,以查看是否有任何效果(相应地更改损失):https://towardsdatascience.com/hyperparameter-optimization-with-keras-b82e6364ca53
我只在较小的型号上这样做(这太费时了),但本质上,最好是保持不变,避免激怒你的主管。
如果您运行的是不同的ML或DL库,那么每个库都有优化器,只需搜索它们。最好在集群上并在一夜之间运行这些程序,但它们通常会为您提供一个足够好的优化版本。
希望那会有帮助,祝你好运!
https://stackoverflow.com/questions/51527211
复制相似问题