该代码有什么问题,为什么该代码的损失没有减少?

时间:2019-03-05 07:38:42

标签: python tensorflow deep-learning loss-function vgg-net

我已经在张量流中实现了VGG-16,VGG-16是相当深的网络,因此损耗肯定会减少。但是在我的代码中,它并没有减少。 但是当我一次又一次地在同一批次上运行模型时,损失正在减少。任何想法,为什么会发生这种事情。

here开始跟随

VGG-net

训练是在dog-vs-cat数据集中进行的,图像尺寸为224x224x3。

网络参数如下:

lr_rate:0.001 batch_size = 16

GitHubGist上查找代码

输出如下:

Output

1 个答案:

答案 0 :(得分:1)

我假设您正在遵循所链接的Simonyan&Zisserman论文中的体系结构变体E-然后我发现您的代码存在一些问题:

  • 对所有隐藏层使用activation='relu'

  • 最大池应该在2 x 2的窗口上完成,因此在池层中使用pool_size=[2, 2]而不是pool_size=[3, 3]

  • 正确地将pool13conv13链接起来:

pool13 = tf.layers.max_pooling2d(conv13, [2, 2], 2, name='pool13')

我没有可用于测试的GPU,但是经过足够的迭代,损耗应该会减少。