如何使用Tensorflow和预训练模型重新缩放像素值?


可以使用Tensorflow和预训练模型,通过'Rescaling'层和'tf.keras.applications.mobilenet_v2'包中的'preprocess_input'方法来重新缩放像素值。

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

我们将了解如何借助从预训练网络进行迁移学习来对猫和狗的图像进行分类。

图像分类迁移学习背后的直觉是,如果一个模型在大型通用数据集上进行训练,则该模型可以有效地用作视觉世界的通用模型。它已经学习了特征图,这意味着用户不必从头开始训练大型模型。

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

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

示例

print("Pixel values are being rescaled")
preprocess_input = tf.keras.applications.mobilenet_v2.preprocess_input
rescale = tf.keras.layers.experimental.preprocessing.Rescaling(1./127.5, offset= -1)

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

输出

Pixel values are being rescaled

解释

  • 将使用tf.keras.applications.MobileNetV2作为基础模型。
  • 此模型期望像素值在[-1,1]范围内。
  • 但图像中的像素值范围为[0-255]。
  • 可以重新缩放它们,然后可以使用模型中包含的预处理。

更新于: 2021年2月25日

152 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告