在人工智能技术迅速扩张的领域,快速轻松地使用机器学习的想法日渐成为现实。诸如 TensorFlowKerasPyTorch 以及 Caffe2 等机器学习引擎,可帮助数据科学家和开发人员更轻松地进行可扩展的机器学习。这也引发了各种开源和专用“Model Zoo”的不断涌现,用于访问越来越多的机器学习模型。

我们认为这个日益庞大的社区应该设有一个查找开放免费模型的接入点。Model Asset eXchange (MAX) 应运而生,它是数据科学家和开发人员查找和使用机器学习模型的一站式交流平台。MAX 提供预先训练和可训练的模型,这些模型使用 TensorFlow、Keras、PyTorch 以及 Caffe2 等开源 ML 引擎所创建的。MAX 模型包含详细的元数据,涉及模型的训练方式和训练数据。

创建 一个 Web 应用

为了解在应用中使用MAX 模型有多简单,我们决定使用在 MAX 上发现的 Image Caption Generator 模型来创建一个 Web 应用。Image Caption Generator Web App 旨在支持您根据内容筛选一组图像,这将由该模型生成的说明所决定。

我们的首个设计决策就是让这个 Web 应用依赖于针对 Image Caption Generator 已在运行的 API 端点,因为这是大部分开发人员使用该模型的方式。为借鉴其他项目的最新经验,我们决定使用 Python 和 Tornado Web 框架编写服务器。该服务器用于提供初始的 Web UI,然后使用客户端 JavaScript 与之进行交互。存储库包括一组默认图像,在服务器启动时,会将这些图像发送至模型端点。服务器将模型端点返回的说明数据保存在 Python 字典中,随图像一同提供给 UI。

当您首次点击 Web UI 时,服务器会使用初始图像及其说明数据进行填充。在创建与这些图像的交互方式时,我们确定了两个接口:一个可选的图像网格,以及一个从所选图像的说明生成的交互式词云。当您单击词云中的某个词时,会选中一部分包含该词的当前所选图像。这个功能与图像网格的直接可选性支持您根据内容筛选图像。

Web UI 还包含上传特性,支持向默认的图像集添加自己的图像。Web UI 使用客户端 JavaScript 将图像上传至服务器,并请求获取它们的说明数据。同样在服务器启动时,会将这些图像发送至模型 API,然后将返回的说明数据保存到字典中。接着,服务器会向 Web UI 返回新的说明数据,客户端 JavaScript 则用于通过新的图像和说明来更新 UI。通过使用客户端 JavaScript 支持上传流程,您将获得更加顺畅的体验,通过更新服务器上的数据,新的图像也将保留在重新加载的 UI 页面上。

有了筛选和上传特性,我们的 Web 应用就能为用户提供一种根据内容筛选图像的方式。实现了展示如何在简单的 Web 应用中使用所选模型这一初始目标之后,我们决定添加一项最终特性,支持您与说明数据直接交互。通过使用 Web UI,您能够在图像网格中钻取图像,查看放大版本,以及 Image Caption Generator 返回的前三个说明。

立即试用

我们的 Web 应用已在 GitHub 上提供,欢迎大家积极测试运行。我们也希望您改进此应用,所以如果您有任何建议,欢迎在存储库上提出问题。

了解更多信息

本文翻译自:Using a model from the Model Asset eXchange (MAX) in a web application(2018-07-12)

加入讨论