显示几个随机增强后的训练图像

from keras.preprocessing import image  # 图像预处理工具的模块

fnames = [os.path.join(train_cats_dir, fname) for
          fname in os.listdir(train_cats_dir)]
img_path = fnames[3]  # 选择一张图像进行加强
img = image.load_img(img_path, target_size=(150, 150))  # 读取图像并调整大小
x = image.img_to_array(img)  # 将其形状转换为(150,150,3)的Numpy数组
x = x.reshape((1,) + x.shape)  # 将其形状转换为(1,150,150,3)
i = 0
for batch in datagen.flow(x, batch_size=1):  # 一个生成元组(x, y)的迭代器
    plt.figure(i)
    imgplot = plt.imshow(image.array_to_img(batch[0]))  #plt.imshow()负责对图像进行处理
    i += 1
    if i % 4 == 0:
        break  # 生成随机变换后的图像批量。循环是无限的,因此你需要在某个时刻终止循环

plt.show()

使用这种数据增强来训练一个新网络,那么网络不会两次看到相同的输入。但网络看到的输入仍是高度相关的,因为这些输入都来自少量的原始图像。无法生成新的信息,只能混合现有信息。因此,这种方法不足以完全消除过拟合。

你可能感兴趣的:(显示几个随机增强后的训练图像)