运用 MXNet Scala API 接口进行图像分类(附代码)

本文为雷锋字幕组编译的技术博客,原标题 Image Classification with MXNet Scala Inference API,作者为 Qing Lan, Roshani Nagmote 翻译 | 朱茵 整理 | 凡江 博客原址: https://medium.com/apache-mxnet/image-classification-with-mxnet-scala-inference-api-8ab6ce1bbccf

随着 MXNet 1.2.0 版本的发布,新的 MXNet Scala API 接口也发布了。这次发布的 Scala,里面的推理应用程序致力于优化开发者体验。Scala 是一个通用目的程序语言,支持功能性编程和较强的静态类型系统,它被用于平台的高度分布式处理像 Apache Spark。

现在,你们有了新的 Scala API 接口,准备自己试验下。首先你们需要使用 mxnet-full 包来搭建环境,然后你们可以在图像分类的实例和目标侦测的实例上尝试下。(目标侦测的实例我们将在下一次的博客中公布演示)。

环境搭建 (Linux/OSX)

使用 maven 来安装 mxnet-full 包。在 pom 文件里添加属性。请转换 <你的平台> 到你们正在使用的平台。(OSX: osx-x86_64-cpu, Linux: linux-x86_64-cpu/gpu)

如果你正在使用 IntelliJ,你应看到安装包已被导入。你也可以根据这个教程用 MXNet Scala 包来设置 IntelliJ。

图像分类实例

在这部分,你将使用预训练的图像分类模型做推理。这个例子使用了 ResNet152 模型。你可以使用这个脚本来下载这个模型文件。 以下是重建这个例实例需要导入的库。

第一步:创建运行这个实例的主要功能

这里的环境意思是定义这个模型,代码将会运行。如果你想用 GPU(s) 来运行的话,你可以将这行代码改成 context.gpu()。本实例,我们使用了这副图片。

然后给模型添加路径并添加使用 API 接口做测试的图像。

第二步:加载模型并做推

以下代码是之前代码块的延续:

需要用一个输入描述符来定义输入来源和模型配置。「数据」就是输入数据的名字。输入形状是输入图像的形状。输入的矩阵是 224*224 像素大小的三个信道。

在我们挑选和整理好我们所有的输入后,我们创建了一个图像分类器目标,使用它来加载图像。然后我们开始在样本图像上做分类。「Some(5)」区域意思是我们将选取最准确的前 5 个预测。这个区域是选择性的,未分类顺序的预测会是默认选项。一旦完成这一步,我们只需打印显示输出。

结果

结束上一步后,你将看到类似于以下的输出(这儿我们使用了一张哈巴狗的图像):

第一个元素是分类「n02110958 pug, pug-dog」,第二个值是由分类器决定的该分类的可信度值。

总结

这次简单的试验后,你应当能够使用 MXNet Scala API 接口创建一个图像分类器。你能在 MXNet 项目资源库的 Scala 推理图像分类器实例中找到更多有关这个实例的代码信息。

在我们后续的博客中,我们将介绍使用 MXNet Scala API 接口处理目标侦测的任务。

感谢 Naveen Swamy。 博客原址:

https://medium.com/apache-mxnet/image-classification-with-mxnet-scala-inference-api-8ab6ce1bbccf

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2018-06-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能的秘密

用机器学习来预测天气Part 1

  本章是使用机器学习预测天气系列教程的第一部分,使用Python和机器学习来构建模型,根据从Weather Underground收集的数据来预测天气温度。该...

43290
来自专栏机器之心

开源 | 浏览器上最快的DNN执行框架WebDNN:从基本特性到性能测评

选自Github 机器之心编译 参与:蒋思源、晏奇 WebDNN 是网页浏览器中最快的 DNN 执行框架,而本文首先简单介绍了 WebDNN 特征与其框架结构...

31960
来自专栏人工智能

作为TensorFlow的底层语言,你会用C+构建深度神经网络吗?

选自Matrices.io 作者:Florian Courtial 机器之心编译 参与:李泽南、蒋思源 很多人都知道 TensorFlow 的核心是构建在 C+...

28980
来自专栏机器学习算法工程师

史上最详细的XGBoost实战(上)

作者:章华燕 编辑:祝鑫泉 零 环境介绍: · Python版本:3.6.2 · 操作系统:Windows · 集成开发环境:PyCharm 一 安装Pyt...

73340
来自专栏新智元

【干货】神经增强:用 Python 实现深度学习超分辨率处理

【新智元导读】神经网络基于样本图像的训练为模糊图像补充细节,从而把模糊图像变高清。它不能把你的照片重建成一模一样的高清版。这只有好莱坞大片才有可能做到——但使用...

71450
来自专栏机器学习算法原理与实践

tensorflow机器学习模型的跨平台上线

    在用PMML实现机器学习模型的跨平台上线中,我们讨论了使用PMML文件来实现跨平台模型上线的方法,这个方法当然也适用于tensorflow生成的模型,但...

22920
来自专栏PPV课数据科学社区

TensorFlow必知基础知识​

TensorFlow概要 Google第一代分布式机器学习框架DistBelief1,在内部大规模使用后并没有选择开源。而后第二代分布式机器学习系统Tenso...

44860
来自专栏AI科技评论

实战 | BERT fine-tune 终极实践教程

AI科技评论按:从 11 月初开始,google-research 就陆续开源了 BERT 的各个版本。google 此次开源的 BERT 是通过 tensor...

71150
来自专栏杨熹的专栏

如何应用 BERT :Bidirectional Encoder Representations from Transformers

上一篇文章介绍了 Google 最新的BERT (Bidirectional Encoder Representations from Transformers...

25320
来自专栏AI研习社

Github 项目推荐 | 用 JavaScript 实现的神经网络 —— brain.js

不过,一般的开发者应该都不会用神经网络来实现异或的功能吧,所以这里有一个更加实际的例子:训练一个神经网络来识别颜色对比 https://brain.js.org...

18220

扫码关注云+社区

领取腾讯云代金券