tensorflow 优化网络采坑记①:

1、如果损失迟迟不降,应该检查一下输入数据的形状,即使你觉得你输入的数据的形状能在计算的时候对的上,网络程序性运行没有错误的运行。我就是把标签输入从一维升到2维,计算的过程也都能正常运行,但是损失就是很难优化,一直搞不明白是怎么回事。我拿别人的网络作对比,输入数据的方式、损失函数、学习率等等都一样,损失函数却不一样,检查一番发现我输入的标签是二维的,而别人的标签都在一个列表/数组中,是一维的,计算的损失降不下了的问题确实出在这,但是计算维度方面我都是预算好的啊,,但是就是不知道为何导致网络难以优化。

2、输出embedding的维度。网络输出的维度并不是越高越好,在从有监督学习转向无监督学习的过程中,套用有监督学习的网络结构可能并不好用,比如在监督式学习中标签有十类,你输出的维度是10维,效果很好;但是在无监督学习时,这个网络的输出还是十维时就可能导致网络无法收敛,这时候网络输出的embedding的 维度可以考虑2^4=16>10,这样输出4维就够了。

综上,最近在网络优化上遇到的大坑主要如下:输入标签就我的情况来说宜用一维的 ;无监督学习网络结构不应该照搬监督式学习中的网络结构,但是主要在于最后输出的维度,很可能要调整,一般根据二进制算2的次幂来计算

猜你喜欢

转载自blog.csdn.net/Hero_Never_GIVE_UP/article/details/86597253