在我们将先进的研究模型引入 TensorFlow Lite 时,我们还希望让您更容易根据自己的用例定制这些模型。我们很高兴地宣布推出 TensorFlow Lite 模型制作器,这是一款易于使用的工具,可通过迁移学习将先进的机器学习模型调整到您的数据集。它用直观的 API 封装了复杂的机器学习概念,以便每个人都可以在没有任何机器学习专业知识的情况下开始使用。仅需 4 行代码,即可训练一项先进的图像分类
data = ImageClassifierDataLoader.from_folder('flower_photos/')
model = image_classifier.create(data)
loss, accuracy = model.evaluate()
model.export('flower_classifier.tflite', 'flower_label.txt', with_metadata=True)
Model Maker 支持 TensorFlow Hub 上提供的多款先进模型,包括 EfficientNet-Lite 模型。如果您想获得更高的准确度,只需更改一行代码即可切换到不同的模型架构,同时保留您的训练管道的其余部分。
# EfficinetNet-Lite2.
model = image_classifier.create(data, efficientnet_lite2_spec)
# ResNet 50.
model = image_classifier.create(data, resnet_50_spec)
Model Maker 当前支持两个用例:图像分类(教程)和文本分类(教程),更多计算机视觉和 NLP 用例即将推出。
开发模型:附加元数据以实现无缝模型交换
TensorFlow Lite 文件格式始终在其元数据中保存输入/输出张量形状。当模型创建者也是应用开发者时,此方法的效果很好。然而,随着设备机器学习生态系统的发展,这些任务越来越多地由组织内部的不同团队甚至组织间执行。为促进这些模型知识交换,我们在元数据中添加了新的字段。它们分属两大类
为了加强这一工作,TensorFlow Lite Model Maker 创建的模型和 TensorFlow Hub 上的图像相关 TensorFlow Lite 模型已附加其元数据。如果您正在创建自己的模型,您可以附加元数据,以便更轻松地共享模型。
# Creates model info.
model_meta = _metadata_fb.ModelMetadataT()
model_meta.name = "MobileNetV1 image classifier"
model_meta.description = ("Identify the most prominent object in the "
"image from a set of 1,001 categories such as "
"trees, animals, food, vehicles, person etc.")
model_meta.version = "v1"
model_meta.author = "TensorFlow"
model_meta.license = ("Apache License. Version 2.0 "
"http://www.apache.org/licenses/LICENSE-2.0.")
# Describe input and output tensors
# ...
# Writing the metadata to your model
b = flatbuffers.Builder(0)
b.Finish(
model_meta.Pack(b),
_metadata.MetadataPopulator.METADATA_FILE_IDENTIFIER)
metadata_buf = b.Output()
populator = _metadata.MetadataPopulator.with_model_file(model_file)
populator.load_metadata_buffer(metadata_buf)
populator.load_associated_files(["your_path_to_label_file"])
populator.populate()
创建模型后,我们希望检查它在移动设备上的性能表现。TensorFlow Lite 提供 基准工具 以测量模型的性能。我们已添加使用所有运行时选项运行基准的支持,包括在 GPU 或其他受支持的硬件加速器上运行模型、指定线程数等等。您还可以获得单次操作粒度的推理延迟细分,以识别最耗时的操作并优化您的模型推理。
将模型集成到您的应用程序后,您可能会遇到其他性能问题,需要借助平台提供的性能分析工具。例如,在 Android 上,人们可以通过各种 跟踪工具 来调查性能问题。我们在 Android 上推出了 TensorFlow Lite 性能跟踪模块,可帮助探测 TensorFlow Lite 内部。它已默认安装在我们的夜间发布中。通过跟踪,人们可以查明推理期间是否存在资源争用。请参阅 我们的文档 了解更多关于如何在 Android 基准工具的上下文中使用该模块的信息。
我们将继续改进 TensorFlow Lite 性能工具,以使其更直观、更有助于测量和调整各种设备上的 TensorFlow Lite 性能。
部署:轻松扩展到多个平台
如今,大多数应用程序需要支持多种平台。这就是我们构建 TensorFlow Lite 以在平台之间无缝工作的缘故:Android、iOS、Raspberry Pi 和其他基于 Linux 的 IoT 设备。所有 TensorFlow Lite 模型都可以在任何官方支持的平台上开箱即用,以便您可以专注于创建优秀的模型,而不用担心如何将模型适应不同的平台。