如何使用 Python 中的 TensorFlow 构建归一化层?
Tensorflow 可以通过首先将类名转换为 Numpy 数组,然后使用 tf.keras.layers.experimental.preprocessing 包中的 'Rescaling' 方法创建归一化层来构建归一化层。
阅读更多:什么是 TensorFlow 以及 Keras 如何与 TensorFlow 协同工作以创建神经网络?
包含至少一层卷积层的神经网络称为卷积神经网络。我们可以使用卷积神经网络构建学习模型。
图像分类迁移学习背后的直觉是,如果一个模型在大型通用数据集上进行训练,则该模型可以有效地作为视觉世界的通用模型。它将学习特征映射,这意味着用户不必从头开始在大型数据集上训练大型模型。
TensorFlow Hub 是一个包含预训练 TensorFlow 模型的存储库。TensorFlow 可用于微调学习模型。
我们将了解如何使用 TensorFlow Hub 中的模型与 tf.keras,使用 TensorFlow Hub 中的图像分类模型。完成后,可以执行迁移学习来微调模型以适应自定义图像类别。这是通过使用预训练的分类器模型来获取图像并预测其内容来完成的。这可以在无需任何训练的情况下完成。
我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,并且无需任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 建立在 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://tensorflowcn.cn/tutorials/images/transfer_learning_with_hub
输出
It contains 5 classes ['daisy' 'dandelion' 'roses' 'sunflowers' 'tulips'] A normalization layer is built
解释
TFHub 对模型图像的约定要求范围为 [0, 1] 的浮点输入。
可以使用 Rescaling 层来实现相同的效果。
可以使用缓冲预取,以便可以从磁盘获取数据而不会阻塞 I/O。