小编Ish*_*ery的帖子

tensorflow上的批量标准化 - tf.contrib.layers.batch_norm在培训方面表现良好,但测试/验证结果不佳

我尝试在Mnist数据集上使用函数tf.contrib.layers.batch_norm实现CNN.

当我训练和检查模型时,我发现损失正在减少(好!)但是测试数据集的准确性保持随机(~10%)(BAD !!!)

如果我在没有批量标准化的情况下使用相同的模型,我会发现测试精度正在按预期增加.

你可以在下面的代码中看到我如何使用批量规范化功能.如果我用于测试数据集来设置is_training = True我得到了很好的结果,所以问题是批量标准化函数的is_training = False模式.

请帮我解决一下这个.提前感谢所有人.

    # BLOCK2 - Layer 1
    conv1 = tf.nn.conv2d(output, block2_layer1_1_weights, [1, 1, 1, 1], padding='SAME')
    conv2 = tf.nn.conv2d(output, block2_layer1_2_weights, [1, 1, 1, 1], padding='SAME')
    conv3 = tf.nn.conv2d(output, block2_layer1_3_weights, [1, 1, 1, 1], padding='SAME')
    conv4 = tf.nn.conv2d(output, block2_layer1_4_weights, [1, 1, 1, 1], padding='SAME')

    conv_normed1 = tf.contrib.layers.batch_norm(conv1, scale=True, decay=batch_norm_decay, center=True,  is_training=is_training, updates_collections=None )
    conv_normed2 = tf.contrib.layers.batch_norm(conv2, scale=True, decay=batch_norm_decay, center=True,  is_training=is_training, updates_collections=None )
    conv_normed3 = tf.contrib.layers.batch_norm(conv3, scale=True, decay=batch_norm_decay, center=True,  is_training=is_training, …
Run Code Online (Sandbox Code Playgroud)

normalization tensorflow

7
推荐指数
1
解决办法
1648
查看次数

标签 统计

normalization ×1

tensorflow ×1