MXNet Scala发布图像分类API|附使用教程

Posted BestSDK

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

MXNet Scala发布图像分类API|附使用教程

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

图像分类实例

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

以下是重建这个例实例需要导入的库。

MXNet Scala发布图像分类API|附使用教程

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

MXNet Scala发布图像分类API|附使用教程

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

MXNet Scala发布图像分类API|附使用教程

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

第二步:加载模型并做推

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

MXNet Scala发布图像分类API|附使用教程

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

MXNet Scala发布图像分类API|附使用教程

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

MXNet Scala发布图像分类API|附使用教程

结果

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

MXNet Scala发布图像分类API|附使用教程

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

总结

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

以上是关于MXNet Scala发布图像分类API|附使用教程的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你搭建一个神经网络(图像分类)

手把手教你搭建神经网络(使用Vision Transformer进行图像分类)

手把手教你搭建神经网络(使用Vision Transformer进行图像分类)

MXNet中使用卷积神经网络textCNN对文本进行情感分类

手把手教你搭建神经网络(CT扫描3D图像的分类)

手把手教你搭建神经网络(CT扫描3D图像的分类)