https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwtY_K_Qnk3nsd76BjZG2yqDB2CO07r2yR0aZFhW3zJuqB0zrkf2XQJn4oqZLohp-YRQ9EvOdBmN_8K3CIuLF4FQyNHuT58P1L8uoADKq1AoKc9VLRO_a_yhWpEO17qDfTf75ppoG2RXns/s1600/0_NyEo0SUJOJKE26c6.png
作者:Daniel Smilkov、Sandeep Gupta 和 Vishy Tirumalashetty
TensorFlow.js 是一个开源库,允许您在 Javascript 中定义、训练和运行机器学习模型。该库赋能了来自庞大的 JavaScript 社区的开发人员,让他们能够构建和部署机器学习模型,并实现了新的设备上计算类别。TensorFlow.js 在所有主流浏览器中运行,在 Node.js 中服务器端运行,最近还在 微信 和 React Native 中运行,为混合应用程序提供了无需离开 JS 生态系统即可访问 ML 的功能。今天,我们很高兴为 JavaScript 开发人员带来一种新方法,让他们能够使用 GCP AutoML 服务轻松地使用自己的数据训练自定义模型,并在 JavaScript 应用程序中部署该模型。
TensorFlow.js 背后的主要目标之一是赋能 JS 开发人员,让他们能够在无需创建自己的模型的情况下使用 ML 的优势。有两种现有的方法可以将 ML 的强大功能引入您的 JavaScript 应用程序:使用我们预先打包的模型之一,或根据自己的数据微调模型。
例如,我们预先打包的 姿势估计 和 人体分割 模型允许您构建 新型用户交互 ,并可以构成新的 辅助工具的基础。所有这些模型都发布在 NPM 上,您可以使用几行代码使用它们(无需 ML 知识!)。
<script src="https://cdn.jsdelivr.net.cn/npm/@tensorflow/tfjs"></script>
<script src="https://cdn.jsdelivr.net.cn/npm/
@tensorflow-models/posenet">
</script>
<img id="tennis" src="tennis.jpg"/>
<script>
async function run() {
const net = await posenet.load();
const image = document.getElementById('tennis');
const pose = await net.estimateSinglePose(image);
console.log(pose);
}
run();
</script>
如果您有自己的数据,您可以从预训练模型开始并对其进行微调。预训练模型和训练本身可以存在于 Python 或 JavaScript 中。如果训练是在 Python 中完成的,您可以使用我们的 转换器将 SavedModel 或 Keras 模型无缝转换为 TensorFlow.js。如果模型已经存在于 TensorFlow.js 中,您无需进行任何转换。 此代码实验室 向您展示如何使用 MobileNet(一种针对边缘设备优化的图像分类模型)并在自己的图像数据集上对其进行微调,所有这些都在 JavaScript 中完成。
TensorFlow.js + AutoML
我们很高兴宣布与 Cloud AutoML Vision集成,Cloud AutoML Vision 是一种云服务,使开发人员能够根据其标记数据训练自定义模型。如果您的用例与图像分类或对象检测相关,您可以使用 UI 上传数据、训练边缘模型,并直接将其导出到 TensorFlow.js 模型,无需任何编码。请注意,可以使用开源 TensorFlow.js 库(或 Python TensorFlow)直接训练自定义模型,但 AutoML 提供了一种易于使用的服务,可自动为您完成此过程。
如果您已经拥有自定义模型,AutoML 仍然非常有用。AutoML Vision Edge 模型经过优化,具有较小的内存占用,并提供低延迟,同时提供高精度。我们与多个客户和合作伙伴合作,并取得了一些惊人的早期成果和反馈。 CVP,一家商业和技术咨询公司,一直在评估一些视觉场景,以帮助在用于偏远地区的边缘模型上实现工作场所安全。以下是 CVP 数据科学总监 Cal Zemelman 对其结果的看法:
“我们正在为一个联邦机构开发一个智能手机应用程序,该应用程序执行图像分类以帮助防止事故并提高公共安全。该应用程序主要使用 JavaScript 编写,作为渐进式 Web 应用程序,以允许跨平台使用,因此我们正在训练 Keras 模型,然后将其转换为 TensorFlow.js。使用新的“导出到 TensorFlow.js”功能,我们能够测试使用 AutoML 极大地简化了我们的模型创建工作流程。以前,我们最好的模型是重新训练的 ResNet50,其准确率约为 91%。AutoML 图像分类的均衡性能模型在 5 个节点小时内达到约 99% 的准确率。它的大小也只有之前模型的 1/5,我们看到推理速度提高了 60%。”
我们对客户和合作伙伴所看到的早期结果感到非常兴奋,并期待听到有关此版本的更多反馈。
您现在可以训练 AutoML Vision Edge 模型。训练模型后,您可以将 TensorFlow.js 模型导出到您的客户端应用程序。使用 AutoML Vision Edge,您只需为超过 15 个节点小时的任何训练付费(您将获得 15 个节点小时的免费使用时间)。导出或客户端预测不收取任何费用。
下一步
- 通过官方文档了解更多关于 AutoML NPM 库的信息。