介绍
本文是文章第 1 部分的延续 ,我们在第 1 部分中讨论了一般数据管道以及我们如何使用 TensorFlow 数据管道:Tensorflow 数据集。查看第一部分:https://mp.weixin.qq.com/s/TPg_1KT6u47-9KrMSpoqzg
简单回顾一下,我们通过从“Horses-and-Human”数据集上的“TensorFlow Datasets”中提取、转换和加载数据创建了一个二进制图像分类器。如果你不熟悉这个概念,我建议你也看看那篇文章。
在本文中,我们将创建一个类似的二元图像分类器,但与之前不同,这次我们将通过数据增强处理过拟合。我们将使用数据增强作为序列模型层,这些层将在实际进入卷积层和最大池化层之前转换模型中的流数据。
这使我们能够在运行时模型训练中使用已经存储的数据和更多样化的示例。
但在此之前:什么是数据增强?
什么是数据增强?
数据增强是图像处理中一种非常流行的技术,尤其是计算机视觉,通过应用随机(但现实)的变换来增加训练数据的多样性和数量。
例如,图像调整大小、图像旋转、图像翻转等等。这种技术帮助我们获得更多样化的数据,从而产生更好的训练集,从而得到更好的训练模型。
注意:在深度学习中,当我们使用数据增强时,我们只将技术应用于训练数据,而不是验证数据,也不应用于测试数据。
将跳过第1部分中已经涵盖的那些部分的代码说明,直接进入本文的内容。
让我们编码
导入库并使用 TensorFlow 数据集检索数据
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
import tensorflow_datasets as tfds
from tensorflow.keras import layers
train_dataset,info = tfds.load('horses_or_humans', with_info = True, split='train', as_supervised=True)
val_dataset,val_info = tfds.load("horses_or_humans", with_info=True, split='test', as_supervised=True)
这些数据管道创建的tensorflow.data.Dataset对象是一个 Python 迭代器。那么,让我们看看“ train_dataset ”中的一个例子
get_label_name = info.features["label"].int2str
image, label =