65.9K
CodeProject 正在变化。 阅读更多。
Home

将风格迁移模型从 TensorFlow 转换为 TensorFlow Lite

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.86/5 (3投票s)

2021年7月27日

CPOL

3分钟阅读

viewsIcon

6945

downloadIcon

643

在这个项目中,我们的目标是在 Android 平台上运行一个移动图像到图像的翻译模型。

引言

在本系列文章中,我们将介绍一个基于 循环一致对抗网络 (CycleGAN) 的移动图像到图像翻译系统。我们将构建一个可以执行非配对图像到图像翻译的 CycleGAN,并向您展示一些有趣但学术上深刻的例子。我们还将讨论如何将使用 TensorFlow 和 Keras 构建的训练好的网络转换为 TensorFlow Lite,并将其用作移动设备上的应用程序。

我们假设您熟悉深度学习的概念,以及 Jupyter Notebooks 和 TensorFlow。 欢迎您下载项目代码。

上一篇文章中,我们使用 TensorFlow 和 Keras 实现了 CycleGAN。 在本文中,我们将向您展示如何将保存的模型转换为 TensorFlow Lite,这是在 Android 上运行它的第一步。

什么是 TensorFlow Lite?

TensorFlow Lite 是 TensorFlow 的轻量级版本。 此轻量级版本允许您以低延迟在移动和嵌入式设备上运行模型,同时执行分类、回归等任务。 目前,TensorFlow Lite 通过 C++ API 支持 Android 和 iOS。 此外,TensorFlow Lite 还有一个解释器,可以使用 Android 神经网络 API 在支持它的 Android 设备上进行硬件加速。 在不支持它的设备上,TensorFlow Lite 默认使用 CPU 进行执行。 在本文中,我们将重点介绍如何在 Android 应用程序中部署 TensorFlow Lite。

TensorFlow Lite 不是为训练模型而设计的。 因此,通常的做法是通过 TensorFlow 在高性能机器上训练模型,然后将训练好的模型转换为 TensorFlow Lite(.tflite 格式)。 然后,如图所示,将 .tflite 模型加载到解释器中。

TensorFlow Lite 转换器

TensorFlow Lite 转换器将 TensorFlow 模型 (model.h5) 转换为可以在移动设备上作为应用程序部署的 TensorFlow Lite (.tflite) 模型。 此转换器的工作方式取决于模型的保存方式。 我们的 CycleGAN 模型保存为 Keras 模型。 因此,我们将使用以下脚本将其转换为 TensorFlow Lite

# Load the trained Keras CycleGAN model

from tensorflow import keras
model = keras.models.load_model('path/to/location')

# Convert the model
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

# Save the model
with open('model.tflite', 'wb') as f:
  f.write(tflite_model)

上面的脚本会生成一个 .tflite 模型,该模型几乎可以立即在 Android 上运行。

运行 TensorFlow Lite 模型

在设备上执行的 TensorFlow Lite 模型执行推理,旨在对输入数据进行预测。 要使用我们的 TensorFlow Lite 模型执行推理,我们必须通过解释器运行它。 TensorFlow Lite 推理最重要的步骤包括

  1. 加载模型:首先,我们必须加载我们转换后的 .tflite 模型。
  2. 转换数据:如果某些输入数据不符合预期的输入大小和格式,我们可能需要执行处理,例如调整大小和更改图像格式。
  3. 运行推理:我们使用 TensorFlow API 执行转换后的模型。 这涉及构建一个解释器并分配张量,我们将在下一篇文章中详细讨论。
  4. 解释输出:最后,我们分析模型推理获得的结果。

TensorFlow 推理 API 为大多数常见的移动/嵌入式平台(例如 Android、iOS 和 Linux)提供,支持多种编程语言。

在这个项目中,我们的目标是在 Android 平台上运行一个移动图像到图像的翻译模型。 因此,我们将重点介绍如何在 Android 上加载和运行我们的模型。

后续步骤

在下一篇文章中,我们将向您展示如何设置适合加载和运行我们的 .tflite 模型的 Android Studio 环境。 敬请关注!

© . All rights reserved.