一、mxnet安装 (以下均为mac环境)

有二种方式:

1.1 用conda安装

 #创建gluon目录
mkdir gluon-tutorials && cd gluon-tutorials #下载源代码
curl https://zh.gluon.ai/gluon_tutorials_zh.tar.gz -o tutorials.tar.gz #解压
tar -xzvf tutorials.tar.gz && rm tutorials.tar.gz
#设置清华镜像站
conda config --prepend channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
#进入解压后的目录
cd gluon-tutorials
#创建环境
conda env create -f environment.yml
#激活环境
source activate gluon

但是14行创建环境这里,这几天一直报连不上清华的镜像站,不知道跟开十久大有无关系,如果大家也遇到类似问题,可以用下面的方式

1.2 用brew+pip安装

 brew update
brew tap homebrew/science
brew info opencv
brew install opencv
pip install mxnet

二、初试NDArray

2.1 先启用jupyter-notebook

2.2 创建矩阵

 from mxnet import ndarray as nd
x = nd.array([[1,2],[3,4]])
print(x)
y = nd.array([[5,6],[7,8]])
print(y)
[[ 1.  2.]
[ 3. 4.]]
<NDArray 2x2 @cpu(0)> [[ 5. 6.]
[ 7. 8.]]
<NDArray 2x2 @cpu(0)>

2.3 矩阵加法

print(x+y)
[[  6.   8.]
[ 10. 12.]]
<NDArray 2x2 @cpu(0)>

2.4 矩阵数乘(点乘)

print(x*y)
[[  5.  12.]
[ 21. 32.]]
<NDArray 2x2 @cpu(0)>

2.5 矩阵乘法(叉乘)

print(nd.dot(x,y))
[[ 19.  22.]
[ 43. 50.]]
<NDArray 2x2 @cpu(0)>

2.5 e的指数运算

print(nd.exp(x))
[[  2.71828175   7.38905621]
[ 20.08553696 54.59814835]]
<NDArray 2x2 @cpu(0)>

上述几个操作的公式图解:

2.6 生成正态分布随机矩阵

x=nd.random_normal(0, 1, shape=(2, 2))
print(x)
[[ 0.45787829  0.93632793]
[-0.89425808 0.35744399]]
<NDArray 2x2 @cpu(0)>

2.7 矩阵转置

 from mxnet import ndarray as nd
x = nd.array([[1,2],[3,4],[5,6]])
print(x)
print(x.T) #转置
[[ 1.  2.]
[ 3. 4.]
[ 5. 6.]]
<NDArray 3x2 @cpu(0)> [[ 1. 3. 5.]
[ 2. 4. 6.]]
<NDArray 2x3 @cpu(0)>

2.8 广播

如果2个矩阵A,B进行运算时,行或列的数量不满足运算要求,ndarray会尝试将第2个矩阵B,自动扩容(行或列),然后进行运算,如下面的代码示例:

 from mxnet import ndarray as nd
x = nd.array([[1,2,3,4]]).reshape([2,2])
y = nd.array([[5]])
print(x)
print(y)
print(x+y)
[[ 1.  2.]
[ 3. 4.]]
<NDArray 2x2 @cpu(0)> [[ 5.]]
<NDArray 1x1 @cpu(0)> [[ 6. 7.]
[ 8. 9.]]
<NDArray 2x2 @cpu(0)>

x是一个2行2列的矩阵,而y是1行1列的矩阵,2个矩阵进行加法运算时,ndarray会将y自动复制扩展成2行2列的矩阵,图解如下:

注:广播这种复制扩容的行为,并非对所有操作都适用,比如叉乘就会报错(如:nd.dot(x,y)大家自己自行测试下),其实很容易埋坑,个人并不推荐使用。

2.9 取第几行/第几列

 from mxnet import ndarray as nd
x = nd.array([[1,2],[3,4],[5,6],[7,8]])
print(x)
print(x[:,0]) #取第1列
print(x[1:2]) #取第2行
print(x[1:3,0:2]) #取第2到3行 + 第1到2列
i = nd.array([[0,2]])
print(nd.take(x,i)) #取第1行、第3行
[[ 1.  2.]
[ 3. 4.]
[ 5. 6.]
[ 7. 8.]]
<NDArray 4x2 @cpu(0)> [ 1. 3. 5. 7.]
<NDArray 4 @cpu(0)> [[ 3. 4.]]
<NDArray 1x2 @cpu(0)> [[ 3. 4.]
[ 5. 6.]]
<NDArray 2x2 @cpu(0)> [[[ 1. 2.]
[ 5. 6.]]]
<NDArray 1x2x2 @cpu(0)>

2.10 计算欧氏距离(norm)

 import mxnet.ndarray as nd
import mxnet.autograd as ag
x = nd.array([[1,2],[3,4]])
print(x)
nd.norm(x)
[[ 1.  2.]
[ 3. 4.]]
<NDArray 2x2 @cpu(0)>
[ 5.47722578]
<NDArray 1 @cpu(0)>

更多ndarray的使用,请参考:

1、https://mxnet.incubator.apache.org/api/python/ndarray.html (ndarray官方文档)

2、https://zh.gluon.ai/chapter_crashcourse/ndarray.html  (使用NDArray来处理数据)

mxnet安装及NDArray初体验的更多相关文章

  1. Sikuli 安装使用之初体验(为Sikuli X指定jre路径)

    Sikuli 是一种新颖的图形脚本语言,在实际的自动化测试中如果仅仅依靠selenium 还是远远不够的,selenium自动化本身是存在着诸多缺陷的,基于浏览器之外的控件 (windows 控件 等 ...

  2. vue初学之node.js安装、cnpm安装、vue初体验

    1. 如果本机没有安装node运行环境,请下载node 安装包进行安装.地址:https://nodejs.org/en/ 2.装完,使用cmd命令行输入:node -v回车 如果输出版本号则成功. ...

  3. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  4. 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验

    在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...

  5. .net core安装及初体验

    .net core安装及初体验 .net core 作为微软的新一代技术,在开发跨平台.微服务等方面有很大的优势,也更贴近现代的编码习惯.在2.0版发布很久以后,近期终于决定进行学习和体验. 安装 作 ...

  6. Nginx unit 源码安装初体验

    Nginx unit 源码安装初体验 上次介绍了从yum的安装方法(https://www.cnblogs.com/wang-li/p/9684040.html),这次将介绍源码安装,目前最新版为1. ...

  7. 第三次随笔--安装虚拟机及学习linux系统初体验

    第三次随笔--安装虚拟机及学习linux系统初体验 ·学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 首先按照老师的提示步骤进行VirtualBox虚拟 ...

  8. 一 Hive安装及初体验

    一 .Hive安装及初体验 1 .hive简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.1直接使用hadoop面临的问题 ...

  9. 香蕉派(or 皮?)上手初体验 -- 外观鉴赏,安装,配置&amp;总结

    一.前言及简单介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG9uZ2Vyem9uZQ==/font/5a6L5L2T/fontsize/400/f ...

随机推荐

  1. ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061),mysql服务已启动

    1 前言 在mysql服务已启动,用命令行进入或者heidisql工具都提示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhos ...

  2. java.net.ServerSocket 解析

    注:本文来自:简书:jianshu 作者:jijs链接:http://www.jianshu.com/p/7c0722a8b66f來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  3. LeetCode(2):Add Two Numbers 两数相加

    Medium! 题目描述: 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头 ...

  4. Gym100340 线性dp

    //看题解写的 https://blog.csdn.net/sdfzyhx/article/details/51804748#include<bits/stdc++.h> using na ...

  5. Java字符串的操作

    判断字符串是否存在 使用str.contains("values") public class one { /*判断某个字符串是否存在*/ public static void m ...

  6. LeetCode | Reverse Words in a String(C#)

    题目: Given an input string, reverse the string word by word. For example,Given s = "the sky is b ...

  7. 最近关于mysql的造型,binlog使用,以及阿里云上线数据处理错误导致被处罚的思考

    因团队中成员,上线代码时,不小心将数据表中吃掉物理的数据清空,导致被单位处罚,痛定思痛,我们应该如何上线,还需要准备哪些技能? 1.上线时,必须关闭服务,不能一边上线,一边让用户可以继续操作,一边产生 ...

  8. hdu 1728 迷宫 给定最大转弯次数 (BFS)

    给出起点 终点 以及转弯次数 在<=转弯次数的条件 能否走到终点 Sample Input25 5...** // .可走 *不可走*.**...........*....1 1 1 1 3 / ...

  9. 天天爱跑步&&弹球

    题解: 弹球题目地址:https://www.nowcoder.com/acm/contest/113/E 后面这题 应该是天天爱跑步的加强版本 原理都是查询子树中dep[x]+f[x]的值的个数 由 ...

  10. 关于C#资源文件的相关操作

    关于资源文件的相关操作. //1.比较常见的有获取资源文件对应的文件流,然后转换到相对应的文件 //比较典型的做法是通过代码程序集加载指定资源 //如下通过Assembly的静态方法GetExecut ...