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

有二种方式:

1.1 用conda安装

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

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

1.2 用brew+pip安装

1 brew update
2 brew tap homebrew/science
3 brew info opencv
4 brew install opencv
5 pip install mxnet

二、初试NDArray

2.1 先启用jupyter-notebook

2.2 创建矩阵

1 from mxnet import ndarray as nd
2 x = nd.array([[1,2],[3,4]])
3 print(x)
4 y = nd.array([[5,6],[7,8]])
5 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 矩阵转置

1 from mxnet import ndarray as nd
2 x = nd.array([[1,2],[3,4],[5,6]])
3 print(x)
4 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,自动扩容(行或列),然后进行运算,如下面的代码示例:

1 from mxnet import ndarray as nd
2 x = nd.array([[1,2,3,4]]).reshape([2,2])
3 y = nd.array([[5]])
4 print(x)
5 print(y)
6 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 取第几行/第几列

1 from mxnet import ndarray as nd
2 x = nd.array([[1,2],[3,4],[5,6],[7,8]])
3 print(x)
4 print(x[:,0]) #取第1列
5 print(x[1:2]) #取第2行
6 print(x[1:3,0:2]) #取第2到3行 + 第1到2列
7 i = nd.array([[0,2]])
8 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)

1 import mxnet.ndarray as nd
2 import mxnet.autograd as ag
3 x = nd.array([[1,2],[3,4]])
4 print(x)
5 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. Visio Pro 2013安装破解与初体验

    这周老师留给我们的任务是自学一个作流程图.UML图以及等等图的软件,我选择的是Visio,下面就奉上我安装与破解的过程以及我第一次使用Visio的体验. 如果邹欣老师您在看这篇博客那对不起了,穷学生一 ...

  2. 在mac上安装Go语言初体验

    我将在mac os x的开发机器上安装go语言的开发环境. go语言运行包下载地址:http://code.google.com/p/go/downloads/list 这里我选择安装 go1.0.3 ...

  3. docker for windows--Windows 10 家庭中文版 21H2 安装Docker Desktop初体验

    本人使用的笔记本电脑操作系统版本:Windows 10 家庭中文版 21H2,想在上面安装docker运行环境 但看了网上一些docker for windonws的安装教程,觉得和官网讲的有出入, ...

  4. faiss python安装_faiss部署初体验

    部署环境介绍 python2.7.13 Anaconda2 Faiss开源代码包 C++编译环境 安装步骤介绍 Anaconda2安装 Anaconda2安装openblas,并软链接到/usr/li ...

  5. 苹果电脑安装python3密码_mac系统安装Python3初体验

    前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...

  6. Felgo之初体验--安装与运行

    前言 上一篇文章中介绍了Felgo的用途,大致知道了Felgo可以用来干些什么,在本篇中我们介绍下Felgo的安装,以及创建我们的第一个Felgo程序. 软件下载 首先我们在官网下载相应平台的安装包, ...

  7. 我的Go+语言初体验——【一、go+环境WIN10_100%成功安装(附-视频)】

    欢迎大家参与[我的Go+语言初体验]活动: 活动地址:[https://bbs.csdn.net/topics/603464006?utm_source=1594742339] 安装过程博文:[htt ...

  8. 我的Go+语言初体验——ubuntu安装Go+环境问题锦集(二)

    欢迎大家参与[我的Go+语言初体验]活动: 活动地址:[https://bbs.csdn.net/topics/603464006?utm_source=1594742339] 本文为大家带来[Go+ ...

  9. 我的Go+语言初体验--Go+之环境安装与程序编码初体验

    一.Go+ 简介 对于 Go+ 工程而言: Go+ 将支持所有 Go 功能(包括部分支持 cgo): Go+ 提供了更简单优雅的语法,比 Go 更接近自然语言: Go+ 易于学习,不必在一开始就处理工 ...

最新文章

  1. linux fedora自定义终端terminal的快捷键
  2. C语言位、字节、半字、字的概念和内存位宽
  3. 关于node.js和C交互的方法
  4. 新闻发布项目——接口类(newsTbDao)
  5. Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)
  6. Web安全之Cookie劫持
  7. 2020年8个效率最高的爬虫框架
  8. HugeGraph 图数据库索引介绍 - 范围索引,全文索引
  9. 理解K8S的编排和网络
  10. “腾讯持股比例提升”系误读!美团对外定增后腾讯持股比例降低
  11. 李彦宏卸任百度投资管理有限公司董事 马东敏上任
  12. dwr 登录实现 (入门知识)
  13. “requireJs前传”之为什么要用前端模块化?
  14. 有关《家》的经典歌曲_【经典】50首诗词,做成50首歌曲,够你享受一整年!(收藏了慢慢听)...
  15. Cell:植物根系如何允许有益微生物定植的
  16. MIT 线性代数导论 第十九、二十讲:行列式公式、代数余子式、克拉默法则
  17. html 朋友圈视频样式,微信开放视频号卡片形式分享朋友圈权限
  18. 分段函数sgnx的C语言程序,几个重要的分段函数
  19. 直播间实时在线人数方案
  20. GPU Skinning旋转指定骨骼

热门文章

  1. php增删改查心得体会,php增删改查入门示例
  2. arduino彩灯计时器电路_micro:bit是什么?和Arduino和单片机有什么不同?
  3. android webview 填充,从Android使用WebView自动填充表格
  4. android sqlite自定义函数,Android中自定义一个View的方法详解
  5. Redis的学习记录
  6. 2020年第十五届竞赛数据上报竞赛数据给高等教学学会统计
  7. 几款不同颜色LED的伏安特性
  8. 需要更换手机了:由 TensorFlow Lite 构建无人驾驶微型汽车
  9. 机械爪角度与距离之间的关系
  10. 全国大学生智能汽车竞赛浙江赛区选拔赛疫情防控工作预案