图像增强+网络加深+批归一化,发现测试数据无法收敛的问题?

来源:5-11 批归一化实战(2)

jandy_chen

2020-02-25

如下截图,训练10K step 发现训练数据的准确度有上来,但是测试数据且一直是9%上下,是否正常??

于是看代码发现,原先这步”/ 127.5 - 1, # 归一化,“是放在加载数据的类里面,,后面由于做图像数据增强移动出来,于时,如下截图所示,在训练评估测试时也加了一下,但继续在训练个10K,也是一样,测试数据准确度太低了(感觉不正常)
请问:
1、测试数据这个地方是否需要做一下归一化处理??
2、如上所问10K的训练,测试数据准确性,是可能什么原因导致?
图片描述

写回答

1回答

正十七

2020-02-26

同学你好,这里应该需要让训练集和测试集统一操作,如果训练集上归一化了,那么测试集上也需要归一化。

而关于这里的逻辑,我在搭建graph的时候已经做了归一化,所以感觉你这里对测试集再做归一化重复了。

见代码中的最后一行。

x = tf.placeholder(tf.float32, [batch_size, 3072])
y = tf.placeholder(tf.int64, [batch_size])
is_training = tf.placeholder(tf.bool, [])# [None], eg: [0,5,6,3]x_image = tf.reshape(x, [-1, 3, 32, 32])# 32*32x_image = tf.transpose(x_image, perm=[0, 2, 3, 1])

x_image_arr = tf.split(x_image, num_or_size_splits=batch_size, axis=0)
result_x_image_arr = []
for x_single_image in x_image_arr:
    # x_single_image: [1, 32, 32, 3] -> [32, 32, 3]
    x_single_image = tf.reshape(x_single_image, [32, 32, 3])
    data_aug_1 = tf.image.random_flip_left_right(x_single_image)
    data_aug_2 = tf.image.random_brightness(data_aug_1, max_delta=63)
    data_aug_3 = tf.image.random_contrast(
        data_aug_2, lower=0.2, upper=1.8)
    x_single_image = tf.reshape(data_aug_3, [1, 32, 32, 3])
    result_x_image_arr.append(x_single_image)
result_x_images = tf.concat(result_x_image_arr, axis=0)

normal_result_x_images = result_x_images / 127.5 - 1


0
1
jandy_chen
谢谢,老师,原来构建图做了归一处理,等同于对跑测试数也做了归一化
2020-02-26
共1条回复

深度学习之神经网络(CNN/RNN/GAN)算法原理+实战

深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN

2617 学习 · 935 问题

查看课程