机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

以下为你介绍的机器学习/深度学习软件都可用在Linux系统上:EfficientNets(模型缩放方法)、SPTAG(分布式最近邻域搜索库)、Netron(神经网络、深度学习与机器学习模型的可视化工具)、MindMeld(AI 会话平台)。

1、EfficientNets(模型缩放方法)

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

EfficientNets 是谷歌基于AutoML开发的,是一种新的模型缩放方法。它在ImageNet测试中实现了84.1%的准确率,再次刷新了纪录。

虽然准确率只比之前最好的Gpipe提高了0.1%,但是模型更小更快,参数的数量和FLOPS都大大减少,效率提升了10倍!

开发EfficientNets是来自谷歌大脑的工程师Mingxing Tan和首席科学家Quoc V. Le,他们的文章《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》已经被ICML 2019收录。

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

实现方法:

传统提高CNN准确率的方法有:增加网络的深度或宽度,例如通过增加层数将ResNet-18可扩展到ResNet-200,或者是提高输入图片分辨率来训练和评估网络。

虽然这些方法确实提高了准确率,但是通常需要繁琐的手动调整,而且经常不能获得最优的性能。

谷歌提出了一种复合缩放(compound scaling)的方法,与缩放神经网络的传统方法不同,谷歌的方法使用一组固定的缩放系数统一缩放每个维度。

实现复合缩放的首先是执行网格搜索,以在固定资源约束下找到基线网络(baseline model)的不同缩放维度之间的关系,确定每个维度的缩放比例系数。然后将这些系数将应用于基线网络,扩展到所需的目标模型大小或计算力。

模型缩放的有效性也在很大程度上依赖于基线网络。因此,为了进一步提高性能,谷歌还使用AutoML MNAS框架优化了模型的准确率和效率,执行神经架构搜索来开发新的基线网络。

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

性能表现:

EfficientNet模型实现了比现有CNN更高的精度和更高的效率,将参数数量和FLOPS降低了一个数量级。

特别需要指出的是,EfficientNet-B7在ImageNet上实现了目前最先进的测试结果,准确度为84.4%(top-1)和97.1%(top-5),同时比现有最好的Gpipe小了8.4倍,推理速度快6.1倍。

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

在同等算力的条件下,EfficientNet也有更好的表现。与ResNet-50相比,EfficientNet-B4的准确率为82.6%,比ResNet-50的76.3%高出6.3个百分点。

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

EfficientNets不仅在ImageNet上表现良好,迁移到其他数据集上也有优秀的表现。为了评估这一点,谷歌在8个广泛使用的迁移学习数据集上测试了EfficientNets,其中5个实现了最先进的准确度。它在CIFAR-100上准确度为91.7%,在Flowers上为98.8%,同时参数减少了21倍。

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

运行模型:

要在models子目录中运行模型,您可能需要使用以下命令将顶级/models文件夹添加到Python路径:

export PYTHONPATH="$PYTHONPATH:/path/to/models"

下载地址:https://gitee.com/mirrors/EfficientNets

2、SPTAG(分布式最近邻域搜索库)

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

SPTAG(Space Partition Tree And Graph)是分布式近似最近邻域搜索(ANN)库,为大规模矢量搜索场景提供高质量矢量索引构建,搜索和分布式在线服务工具包。

该库假定样本表示为向量,并且可以通过 L2 距离或余弦距离来比较向量。为查询向量返回的向量是与查询向量具有最小 L2 距离或余弦距离的向量。

SPTAG 提供两种方法:kd-tree 和相对邻域图(SPTAG-KDT),以及平衡 k-means 树和相对邻域图(SPTAG-BKT)。SPTAG-KDT 在指数构建成本方面是有利的,而 SPTAG-BKT 在非常高维数据中的搜索精度方面是有利的。

建立要求:

swig >= 3.0、cmake >= 3.12.0、boost >= 1.67.0。

安装,对于Linux:

mkdir build

cd build && cmake .. && make

它将在代码目录中生成一个Release文件夹,其中包含所有构建目标。

下载地址:https://github.com/microsoft/SPTAG

3、Netron(神经网络、深度学习与机器学习模型的可视化工具)

Netron 是神经网络、深度学习与机器学习模型的可视化工具。

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

Netron 支持 ONNX (.onnx, .pb, .pbtxt)、Keras (.h5, .keras)、CoreML (.mlmodel)、Caffe2 (predict_net.pb, predict_net.pbtxt)、MXNet (.model, -symbol.json) 与 TensorFlow Lite (.tflite)。

实验性支持 Caffe (.caffemodel, .prototxt)、PyTorch (.pth)、Torch (.t7)、CNTK (.model, .cntk)、PaddlePaddle(__model__)、Darknet (.cfg)、scikit-learn (.pkl)、TensorFlow.js (model.json, .pb) 与 TensorFlow (.pb, .meta, .pbtxt)。

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

安装说明:

macOS:下载.dmg文件或运行brew cask install netron。

Linux:下载.AppImage,.deb文件或运行snap install netron。

Windows:下载.exe安装程序。

浏览器:启动浏览器版本。

Python服务器:运行pip install netron和netron [FILE]或import netron; netron.start('[FILE]')。

下载地址:https://github.com/lutzroeder/netron

4、MindMeld(AI 会话平台)

MindMeld AI 会话平台是一个基于 Python 的机器学习框架,它包含构建生产质量会话应用程序所需的所有算法和实用程序。MindMeld 经过数年来构建和部署数十个高级界面的发展,经过优化,可用于构建会话助理、展示对特定用例或领域的深刻理解,同时提供高度有用和多样化的会话体验。

MindMeld 是目前唯一可用的人工智能会话平台,它为工作流程中的每个步骤提供工具和功能,以便为最先进的会话应用程序提供支持。MindMeld 的架构如下图所示:

机器/深度学习EfficientNets、SPTAG、Netron、MindMeld介绍

总而言之,MindMeld 中提供的功能包括:

1]、高级自然语言处理,包括:

域名分类、意图分类、实体识别、实体角色标签、实体解决方案、语言解析。

2]、多才多艺的对话管理。

3]、自定义知识库创建。

4]、高级问题解答。

5]、培训数据收集和管理支持。

6]、大规模数据分析。

快速开始:

假设您已经安装了在后台运行的Python 3.4、Python 3.5、Python 3.6或Python 3.7和Elasticsearch的pip,则运行:

pip install mindmeld

mindmeld blueprint home_assistant

python -m home_assistant build

python -m home_assistant converse

下载地址:https://github.com/cisco/mindmeld

注明

以上就是机器/深度学习EfficientNets、SPTAG、Netron、MindMeld的介绍内容,这些机器学习/深度学习软件都能使用在Linux操作系统中。

栏目相关文章