我已经在张量流中实现了VGG-16,VGG-16是相当深的网络,因此损耗肯定会减少。但是在我的代码中,它并没有减少。 但是当我一次又一次地在同一批次上运行模型时,损失正在减少。任何想法,为什么会发生这种事情。
从here开始跟随VGG-net 。
训练是在dog-vs-cat数据集中进行的,图像尺寸为224x224x3。
网络参数如下:
lr_rate:0.001 batch_size = 16
在GitHubGist上查找代码
输出如下:
答案 0 :(得分:1)
我假设您正在遵循所链接的Simonyan&Zisserman论文中的体系结构变体E-然后我发现您的代码存在一些问题:
对所有隐藏层使用activation='relu'
。
最大池应该在2 x 2的窗口上完成,因此在池层中使用pool_size=[2, 2]
而不是pool_size=[3, 3]
。
正确地将pool13
与conv13
链接起来:
pool13 = tf.layers.max_pooling2d(conv13, [2, 2], 2, name='pool13')
我没有可用于测试的GPU,但是经过足够的迭代,损耗应该会减少。