MxNet系列——how_to——index

本文档提供了使用MXNet完成各类任务的详尽指南,包括配置安装、预训练模型应用、多GPU训练、性能优化等内容,适合各阶段开发者参考。

博客新址: http://blog.xuezhisd.top
邮箱:xuezhisd@126.com


MXNet 怎么办系列

How-tos 提供了一系列的有关安装,基本概念,说明,命令和使用预训练模型完成的例程指南。

下面的主题解释了基本概念,并为特定任务提供了步骤。其中一些包含了使用预训练模型完成的例程。

配置和安装

你可以在 Amazon Linux, Ubuntu/Debian, OS X, 和 Windows操作系统上运行MXNet。MXNet也可以在Docker和类似于AWS的云上运行。MXNet当前支持 Python, R, Julia 和 Scala编程语言。

如果你在Amazon Linux 或 Ubuntu上运行Python/R,你可以使用Git Bash来快速地安装MXNet库和它的相关依赖。

使用MXNet来执行特定的任务

  • 如何使用预训练的模型
    该章节提供了使用预训练的图像分类模型来读入,自定义和预测图像类别的详细步骤。

  • 如何微调预训练的模型
    该章节提供了关于如何使用一个新的、小的数据集,来微调预训练神经网络的指南。它描述了准备数据,训练一个最后一层和评价结果几部分。为了进行比较,它使用了两个预训练的模型。

  • 如果将神经网络可视化为计算图
    该章节在Jupyter notebook中提供了关于如何可视化神经网络的命令和说明

  • 如何使用数据并行在多个CPU/GPU上进行训练
    该章节提供了MXNet使用多GPU的默认值。该章节也提供了关于自定义GPU数据并行设置(比如,GPU的数量和各个GPU的负载),使用多个GPU训练模型,设置GPU通信选项,同步GPU之间的目录,选择网络接口,调试连接等步骤的说明和命令。

  • 如何以模型并行的方式在多个GPU上训练LSTM
    该章节讨论了关于模型并行的基本实践,比如一个多层网络的某一层使用一个GPU,如何在多个GPU上均衡和组织各个网络层来降低数据传输和瓶颈。

  • 如何在移动设备上运行MXNet
    该章节提供了如何将软件移植到其它操作系统和编程语言的指南。它也描述了当在移动设备上运行模型时,你需要考虑的折中。它也提供了在手机中使用的简单的预训练过的图像分类识别模型。

  • 如何使用Amazon EC2和Amazon S3 在AWS云上设置MXNet
    该章节提供了如何在AWS上使用MXNet的详细步骤。该章节也提供了使用亚马逊简单存储服务(Amazon S3)和弹性计算云(Amazon EC2)的前提条件和依赖库。该章节也提供了如何在云上设置,构建,安装,测试,运行MXNet和在多个GPU上运行MXNet。

  • 如何在不同的输入长度/尺寸(bucketing)上使用MXNet
    该章节描述了基本概念和具有不同架构的模型使用bucketing的背后原理。该章节也提供了一个关于如何修改网络以便使用buckets的例子,并提供了如何创建和迭代buckets的说明。

  • 如何提高MXNet的性能
    该章节描述了如何通过使用推荐的数据格式,存储位置,批大小,库和参数等,来提升MXNet的性能。

  • 如何在Matlab环境下使用MXNet
    该章节提供了在Matlab中使用MXNet来加载模型与数据,预测,特征提取的命令。该章节也包含了两者(可能引发一些问题)的实现差异和一些基础的排错。

  • 如何在浏览器中利用JavaScript语言来使用MXNet
    该章节提供了一个MXNet的JavaScript接口,包含了为了在浏览器中使用它而在服务器端设置与运行它的基础命令。该章节也包含了浏览器对比,使用自己的模型的指南和库的源代码。

开发 和 Hack MXNet

  • 创建新的操作符
    该章节提供了一个自定义网络层的例子,它描述了定义网络层的每一部分的步骤。该章节包含一个涉及参数的 breakdown ,调用优化和提供了该例子完成代码的链接。

  • 从MXNet使用Torch
    该章节描述了如何安装和构建MXNet,以便于和Troch一起使用。该章节也提供了一个支持的Torch数学函数和神经网络模块的列表,和关于如何使用它们的说明。

  • 为MXNet设置环境变量
    该章节提供了MXNet默认环境变量的列表,同时简单描述了每一环境变量功能。

常见问题

  • FAQ FAQ章节提供了MXNet的调试和优化的信息,也附带了一些额外的资源。
`torch gather` 和 MXNet的`F.gather_nd` 都是用来从张量中选取特定索引元素的功能,但在使用上有一些细微差别。 1. **PyTorch (torch)**: `gather`函数主要用于沿着给定维度`dim`获取指定索引处的元素。它接受两个参数,第一个参数是源张量(`input`),第二个参数是一个长度匹配源张量该维度的整数切片(`index`)。例如,如果你有一个三维张量和一维索引,你可以选择每个索引对应的列。输出的张量将与输入的形状相同,除了指定的维度会变为1。 ```python input = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) index = torch.tensor([0, 1]) output = torch.gather(input, dim=1, index=index) # 输出: tensor([[1, 4], # [5, 8]]) ``` 2. **MXNet (F.gather_nd)**: `F.gather_nd`与`torch`的`gather`类似,但它可以处理更高维度的索引,允许你通过多个索引来取出多维张量的元素。这个函数需要一个数据张量`(data)`、一个形状匹配的数据张量`(indices)`作为索引以及一个轴`(axis)`。这个函数返回的是一个由索引指定元素组成的张量,形状是 `(indices.shape[:-1] + data.shape[axis+1:])`。 ```python import mxnet as mx data = mx.nd.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) indices = mx.nd.array([[0, 1], [1, 0]]) # 二维索引 output = mx.nd.F.gather_nd(data, indices) # 输出: [[1, 3], [6, 5]] ``` **区别总结**: - PyTorch的`gather`更适用于单个或低维度索引的情况。 - MXNet的`F.gather_nd`支持高维度或多维索引,适合提取多位置的元素。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值