iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何快速上手MMdnn
  • 601
分享到

如何快速上手MMdnn

2023-06-27 11:06:33 601人浏览 泡泡鱼
摘要

这篇“如何快速上手MMdnn”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何快速上手MMdnn”文章吧。MMdnn 是微软

这篇“如何快速上手MMdnn”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何快速上手MMdnn”文章吧。

MMdnn 是微软开源的一套帮助用户在不同深度学习框架之间进行互操作的工具,包括模型转换和可视化。目前支持在 Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch 和 CoreML 等框架之间进行模型转换。

如何快速上手MMdnn

安装

通过以下命令行获取稳定版的 MMdnn:

pip install https://GitHub.com/Microsoft/MMdnn/releases/download/0.1.3/mmdnn-0.1.3-py2.py3-none-any.whl

或者通过以下命令尝试最新版本:

pip install -U git+Https://github.com/Microsoft/MMdnn.git@master

模型转换

业界和学界存在大量现有框架,适合开发者和研究者来设计模型,每个框架具备自己的网络结构定义和模型保存格式。框架之间的差距阻碍了模型的交互操作。

如何快速上手MMdnn

我们提供一个模型转换器,帮助开发者通过中间表征格式转换模型,以适合不同框架。

支持框架

每个支持的框架都有详细的 README 文档,它们可以在以下conversion件夹找到。

测试模型

我们在部分 ImageNet 模型上对当前支持的框架间模型转换功能进行了测试。

如何快速上手MMdnn

正在测试的框架: PyTorch CNTK Caffe2 ONNX 正在测试的模型: RNN 图像风格迁移 目标检测

模型可视化

你可以使用 MMdnn 模型可视化工具(http://vis.mmdnn.com/),提交自己的 IR JSON 文件进行模型可视化。为了运行下面的命令行,你需要使用喜欢的包管理器安装 requests、Keras、TensorFlow。

使用 Keras inception_v3 模型作为示例。

\1. 下载预训练模型:

python -m mmdnn.conversion.examples.keras.extract_model -n inception_v3

\2. 将预训练模型文件转换成中间表征格式:

python3 -m mmdnn.conversion._.convertToIR -f keras -d keras_inception_v3 -n imagenet_inception_v3.json

\3. 打开 MMdnn 模型可视化工具地址(http://mmdnn.eastasia.cloudapp.Azure.com:8080/),选择文件 keras_inception_v3.json。

如何快速上手MMdnn

社区支持

项目仍在继续开发与探索,它需要各位读者完善中间表征与支持的框架。因此,该项目的作者表示他非常希望有开发者能提供新的运算或扩展。

中间表征:中间表征在 protobuf 二进制文件中储存网络架构,在 NumPynative 格式中储存预训练权重。此外,目前 IR 权重数据使用的是 NHWC 格式。中间表征的细节请查看 ops.txt 和 graph.proto 文件。 框架:我们正在扩展到其它框架版本和可视化工具,例如 Caffe2、PyTorch 和 CoreML 等。此外,本项目也在积极开发 RNN 相关的操作方法。

使用案例

以下是该项目实现框架转换的基本案例,其中包括官方的教程和用户提供的各种案例,机器之心简要介绍了官方 Keras 到 CNTK 的转换教程。 官方教程:

Keras “inception_v3” to CNTK 用户案例:

MXNet “resnet 152 11k” to PyTorch MXNet “resnext” to Keras Tensorflow “resnet 101” to PyTorch Tensorflow “mnist mlp model” to CNTK Tensorflow “Inception_v3” to MXNet Caffe “AlexNet” to Tensorflow Caffe “inception_v4” to Tensorflow Caffe “VGG16_SOD” to Tensorflow Caffe “Squeezenet v1.1” to CNTK

Keras「inception_v3」模型到 CNTK 的转换

1. 安装 Keras 和 CNTK

pip install keraspip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp27-cp27mu-linux_x86_64.whl

or

pip installhttps://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp35-cp35m-linux_x86_64.whl

2. 准备 Keras 模型

以下示例将首先下载预训练模型,然后使用简单的模型抽取器从 Keras 应用中获取模型,抽取器将抽取 Keras 模型架构和权重。

$ python -m mmdnn.conversion.examples.keras.extract_model -n inception_v3Using TensorFlow backend.Downloading data from https://github.com/fchollet/deep-learning-models/releases/download/v0.5/inception_v3_weights_tf_dim_ordering_tf_kernels.h696075776/96112376 [============================>.] - ETA: 0s...network structure is saved as [imagenet_inception_v3.json].Network weights are saved as [imagenet_inception_v3.h6].

架构文件 imagenet_inception_v3.json 和权重文件 imagenet_inception_v3.h6 会下载至当前工作目录。

3. 将预训练模型文件转换为中间表征

$ python -m mmdnn.conversion._.convertToIR -f keras -d converted -n imagenet_inception_v3.json -w imagenet_inception_v3.h6Using TensorFlow backend....Network file [imagenet_inception_v3.json] is loaded successfully.IR network structure is saved as [converted.json].IR network structure is saved as [converted.pb].IR weights are saved as [converted.npy].

以上的命令会将 imagenet_inception_v3.json 作为神经网络架构的描述文件,imagenet_inception_v3.h6 作为预训练权重。然后计算出中间表征文件 converted.json 用于可视化,计算出 converted.proto 和 converted.npy 以进一步转换为其它框架。

4. 转换 IR 文件为 CNTK 模型

$ python -m mmdnn.conversion._.IRToCode -f cntk -d converted_cntk.py -n converted.pb -w converted.npyParse file [converted.pb] with binary fORMat successfully.Target network code snippet is saved as [converted_cntk.py].

你将得到文件 converted_cntk.py,包括构建 Inception V3 网络的原始 CNTK 代码。

经过这三步,你已经将预训练 Keras Inception_v3 模型转换成 CNTK 网络文件 converted_cntk.py 和权重文件 converted.npy。你可以用这两个文件调整训练或推断。

5. 转存原始 CNTK 模型

$ python -m mmdnn.conversion.examples.cntk.imagenet_test -n converted_cntk -w converted.npy --dump cntk_inception_v3.dnn...CNTK model file is saved as [cntk_inception_v3.dnn], generated by [converted_cntk.py] and [converted.npy].

CNTK 可直接加载文件 cntk_inception_v3.dnn。

以上就是关于“如何快速上手MMdnn”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: 如何快速上手MMdnn

本文链接: https://www.lsjlt.com/news/310110.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何快速上手MMdnn
    这篇“如何快速上手MMdnn”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何快速上手MMdnn”文章吧。MMdnn 是微软...
    99+
    2023-06-27
  • 如何快速上手SQL
    这篇文章主要为大家展示了“如何快速上手SQL”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何快速上手SQL”这篇文章吧。两张示例表为了方便练习SQL语法,特地...
    99+
    2024-04-02
  • 如何快速上手Rollup
    本篇内容主要讲解“如何快速上手Rollup”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何快速上手Rollup”吧!什么是rollup?系统的了解rollup...
    99+
    2024-04-02
  • 如何快速上手Picasso
    这篇文章将为大家详细讲解有关如何快速上手Picasso,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Picasso是Square公司出品的一款非常优秀的开源图片加载库,是目前Android开发中超级流行的...
    99+
    2023-06-27
  • 如何快速上手Vue3
    这篇文章主要讲解了“如何快速上手Vue3”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何快速上手Vue3”吧!Vue2 与 Vue3 的对比对 TypeS...
    99+
    2024-04-02
  • 如何快速上手MongoDB
    小编给大家分享一下如何快速上手MongoDB,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。...
    99+
    2023-06-27
  • 如何快速上手PostgreSQL
    本篇内容介绍了“如何快速上手PostgreSQL”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、安装首先,安装PostgreSQL客户端。...
    99+
    2023-06-27
  • 如何快速上手SaltStack
    这篇文章给大家分享的是有关如何快速上手SaltStack的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言...
    99+
    2023-06-27
  • 如何快速上手GitHub
    这篇文章给大家分享的是有关如何快速上手GitHub的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 Git...
    99+
    2023-06-27
  • 如何快速上手coLinux
    这篇文章给大家分享的是有关如何快速上手coLinux的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。colinux位是一款可以帮助用户创建虚拟系统的工具,通过该软件,您可以在电脑上运行Linux系统,支持在win中...
    99+
    2023-06-27
  • Linux中如何快速上手Samba
    这篇文章主要介绍了Linux中如何快速上手Samba,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,有服务...
    99+
    2023-06-27
  • 如何快速上手python爬虫
    这篇“如何快速上手python爬虫”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何快速上手python爬虫”文章吧。“爬虫...
    99+
    2023-06-27
  • 如何快速上手LINQ to XML
    如何快速上手LINQ to XML,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。操作XML的技术有很多种:1)DOM(Document O...
    99+
    2024-04-02
  • linux中如何快速上手cpustat
    小编给大家分享一下linux中如何快速上手cpustat,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!cpustat ,一个用于linux下,非常简单的CPU使用...
    99+
    2023-06-27
  • GN快速上手
    文章目录 背景GN快速入门使用GN建立构建环境交叉编译添加tutorial目标BUILD.gn配置说明 使用config使用默认配置 使用参数了解GN构建过程查找依赖GN文件执行脚...
    99+
    2023-09-12
    linux harmonyos
  • Scrapy快速上手
    超详细官方教程解析 https://blog.csdn.net/fly_yr/article/details/51540269   实战过程: 创建一个Scrapy项目 定义提取的Item 编写爬取网站的 spider 并提取 Item...
    99+
    2023-01-31
    上手 快速 Scrapy
  • linux中如何快速上手Iftop命令
    这篇文章主要介绍linux中如何快速上手Iftop命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Iftop的基本用法运行iftop命令,不带任何参数来查看默认界面的带宽使用情况,如下面的屏幕截图所示。$ ...
    99+
    2023-06-27
  • 如何快速上手Linux的uniq命令
    这篇文章给大家分享的是有关如何快速上手Linux的uniq命令的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux uniq命令用于检查及删除文本文件中重复出现的行列。uniq可检查文本文件中重复出现的行列。...
    99+
    2023-06-27
  • 如何快速上手Linux的size命令
    这篇文章主要介绍如何快速上手Linux的size命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!size命令用于查看目标文件、库或可执行文件中各段及其总和的大小,是 GNU 二进制工具集 GNU Binutils ...
    99+
    2023-06-27
  • 带你快速上手Servlet
    目录一、Servlet与Tomcat的关系二、什么是Servlet三、Servlet的类结构四、ServletConfig类五、ServletContext类六、Servlet的生命...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作