机器学习的概念虽然有趣,但对于初学者来说却可能显得复杂难懂。掌握基础的数学和逻辑需要投入大量的时间和精力。然而,幸运的是,现在有许多工具可以帮助减少这些工作量,其中之一就是Google Cloud AutoML。
AutoML Vision Edge允许用户训练和部署针对边缘设备进行优化的低延迟、高精度模型。训练完成后,模型可以以多种格式使用,包括TF Lite、Core ML、TensorFlow.js等。本文将重点介绍如何使用TF Lite格式的AutoML Edge模型。
数据集是机器学习的基础。准备数据集是训练前的重要步骤。可以通过两种方式获取数据集:使用互联网上已有的公共数据集,或者创建自己的特定数据集。
为了说明这一点,本文使用了一个简单的脚本,可以从Pexels网站抓取图片。Pexels提供了1000张免费的高质量照片。
接下来,我们以识别猫和狗为例,展示如何使用AutoML训练模型。
通过Pexels,我们可以轻松获取所需的猫狗图像。只需修改脚本中的关键词,即可抓取特定类别的图片。运行脚本后,图片会被下载到指定文件夹中。
数据集的整理非常重要。确保每个类别都有足够的图像。每个文件夹至少需要100张图像,以确保模型训练效果良好。
首先,创建一个Google Cloud项目。参考官方文档完成项目的初始化设置。
在AutoML页面上创建数据集,选择单标签分类。每张图像只能属于一个类别,因此适合于猫和狗的分类任务。
使用“导入”功能,将图像文件夹导入AutoML。推荐将图像上传到Google Cloud Storage Bucket,再从AutoML仪表板导入。
在AutoML仪表板中,点击“训练新模型”按钮,开始训练。训练完成后会收到通知。
在训练过程中,模型会自动划分数据集为训练集、验证集和测试集。通过查看仪表板上的精度和召回率指标,评估模型性能。
如果希望在设备上离线使用模型,可以导出TF Lite格式的模型。导出后,可以在移动设备或边缘设备上部署模型。
例如,可以使用以下Python代码加载和运行模型:
```python import numpy as np import tensorflow as tf import cv2
interpreter = tf.lite.Interpreter(modelpath="Your Model Path") interpreter.allocatetensors()
inputdetails = interpreter.getinputdetails() outputdetails = interpreter.getoutputdetails()
dim = (224, 224) img = cv2.resize(img, dim) img = img.reshape(1, 224, 224, 3)
inputdata = np.array(img, dtype=np.uint8) interpreter.settensor(inputdetails[0]['index'], inputdata)
interpreter.invoke() outputdata = interpreter.gettensor(output_details[0]['index'])
print(output_data) ```
以上代码展示了如何加载和运行模型,输出结果包括图像的类别和置信度分数。
尽管使用AutoML进行在线预测可能会产生一定的成本,但在设备上离线使用模型则不需要支付额外费用。AutoML非常适合分类任务,特别是对于初学者来说,它提供了一种简单而有效的方法来解决实际问题。