通过首先将类名称转换为Numpy数组,然后使用tf.keras.layers.experimental.preprocessing软件包中的“ Rescaling”方法创建一个规范化层,可以使用Tensorflow来构建规范化层。
阅读更多:什么是TensorFlow,以及Keras如何与TensorFlow一起创建神经网络?
包含至少一层的神经网络称为卷积层。我们可以使用卷积神经网络来建立学习模型。
用于图像分类的转移学习背后的直觉是,如果在大型通用数据集上训练模型,则该模型可以有效地用作视觉世界的通用模型。它将学习到功能图,这意味着用户不必通过在大型数据集上训练大型模型而从头开始。
TensorFlow Hub是一个包含预训练过的TensorFlow模型的存储库。TensorFlow可用于微调学习模型。
我们将了解如何将TensorFlow Hub中的模型与tf.keras一起使用,如何使用TensorFlow Hub中的图像分类模型。完成此操作后,可以执行传递学习来微调用于自定义图像类别的模型。这是通过使用预训练的分类器模型来拍摄图像并预测其图像来完成的。无需任何培训即可完成此操作。
我们正在使用Google合作实验室来运行以下代码。Google Colab或Colaboratory可以帮助通过浏览器运行Python代码,并且需要零配置和对GPU(图形处理单元)的免费访问。合作已建立在Jupyter Notebook的基础上。
print("It contains 5 classes") class_names = np.array(train_ds.class_names) print(class_names) print("A normalization layer is built") normalization_layer = tf.keras.layers.experimental.preprocessing.Rescaling(1./255) train_ds = train_ds.map(lambda x, y: (normalization_layer(x), y))
代码信用-https://www.tensorflow.org/tutorials/images/transfer_learning_with_hub
输出结果
It contains 5 classes ['daisy' 'dandelion' 'roses' 'sunflowers' 'tulips'] A normalization layer is built
TFHub的图像建模约定要求[0,1]范围内的浮点输入。
可以使用重新缩放图层来实现相同的效果。
可以使用缓冲的预取,以便可以在没有I / O阻塞的情况下从磁盘中获取数据。