如何使用TensorFlow和预训练模型为模型添加分类头?


可以使用 TensorFlow 和预训练模型通过 `GlobalAveragePooling2D` 方法为模型添加分类头,该方法被赋值给一个变量。此变量用于输入数据的特征批次。

阅读更多: 什么是 TensorFlow 以及 Keras 如何与 TensorFlow 协作创建神经网络?

包含至少一层卷积层的神经网络称为卷积神经网络。我们可以使用卷积神经网络来构建学习模型。

我们将了解如何借助来自预训练网络的迁移学习来对猫和狗的图像进行分类。图像分类迁移学习背后的直觉是,如果一个模型在一个大型且通用的数据集上进行训练,则此模型可以有效地用作视觉世界的通用模型。它将学习特征映射,这意味着用户不必从头开始,在一个大型数据集上训练一个大型模型。

阅读更多: 如何预训练定制模型?

我们正在使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,无需任何配置,并可免费访问 GPU(图形处理单元)。Colaboratory 建立在 Jupyter Notebook 之上。

示例

print("Adding a classification head")
global_average_layer = tf.keras.layers.GlobalAveragePooling2D()
feature_batch_average = global_average_layer(feature_batch)
print(feature_batch_average.shape)

代码来源 −https://tensorflowcn.cn/tutorials/images/transfer_learning

输出

Adding a classification head
(32, 1280)

解释

  • 预测是从特征块生成的,平均超过 5x5 个空间位置。

  • 这是使用 `tf.keras.layers.GlobalAveragePooling2D` 层完成的。

  • 此层有助于将特征转换为每张图像的单个 1280 元素向量。

更新于:2021年2月25日

166 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告