mxnet安装及NDArray初体验
一、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初体验相关推荐
- Visio Pro 2013安装破解与初体验
这周老师留给我们的任务是自学一个作流程图.UML图以及等等图的软件,我选择的是Visio,下面就奉上我安装与破解的过程以及我第一次使用Visio的体验. 如果邹欣老师您在看这篇博客那对不起了,穷学生一 ...
- 在mac上安装Go语言初体验
我将在mac os x的开发机器上安装go语言的开发环境. go语言运行包下载地址:http://code.google.com/p/go/downloads/list 这里我选择安装 go1.0.3 ...
- docker for windows--Windows 10 家庭中文版 21H2 安装Docker Desktop初体验
本人使用的笔记本电脑操作系统版本:Windows 10 家庭中文版 21H2,想在上面安装docker运行环境 但看了网上一些docker for windonws的安装教程,觉得和官网讲的有出入, ...
- faiss python安装_faiss部署初体验
部署环境介绍 python2.7.13 Anaconda2 Faiss开源代码包 C++编译环境 安装步骤介绍 Anaconda2安装 Anaconda2安装openblas,并软链接到/usr/li ...
- 苹果电脑安装python3密码_mac系统安装Python3初体验
前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...
- Felgo之初体验--安装与运行
前言 上一篇文章中介绍了Felgo的用途,大致知道了Felgo可以用来干些什么,在本篇中我们介绍下Felgo的安装,以及创建我们的第一个Felgo程序. 软件下载 首先我们在官网下载相应平台的安装包, ...
- 我的Go+语言初体验——【一、go+环境WIN10_100%成功安装(附-视频)】
欢迎大家参与[我的Go+语言初体验]活动: 活动地址:[https://bbs.csdn.net/topics/603464006?utm_source=1594742339] 安装过程博文:[htt ...
- 我的Go+语言初体验——ubuntu安装Go+环境问题锦集(二)
欢迎大家参与[我的Go+语言初体验]活动: 活动地址:[https://bbs.csdn.net/topics/603464006?utm_source=1594742339] 本文为大家带来[Go+ ...
- 我的Go+语言初体验--Go+之环境安装与程序编码初体验
一.Go+ 简介 对于 Go+ 工程而言: Go+ 将支持所有 Go 功能(包括部分支持 cgo): Go+ 提供了更简单优雅的语法,比 Go 更接近自然语言: Go+ 易于学习,不必在一开始就处理工 ...
最新文章
- linux fedora自定义终端terminal的快捷键
- C语言位、字节、半字、字的概念和内存位宽
- 关于node.js和C交互的方法
- 新闻发布项目——接口类(newsTbDao)
- Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)
- Web安全之Cookie劫持
- 2020年8个效率最高的爬虫框架
- HugeGraph 图数据库索引介绍 - 范围索引,全文索引
- 理解K8S的编排和网络
- “腾讯持股比例提升”系误读!美团对外定增后腾讯持股比例降低
- 李彦宏卸任百度投资管理有限公司董事 马东敏上任
- dwr 登录实现 (入门知识)
- “requireJs前传”之为什么要用前端模块化?
- 有关《家》的经典歌曲_【经典】50首诗词,做成50首歌曲,够你享受一整年!(收藏了慢慢听)...
- Cell:植物根系如何允许有益微生物定植的
- MIT 线性代数导论 第十九、二十讲:行列式公式、代数余子式、克拉默法则
- html 朋友圈视频样式,微信开放视频号卡片形式分享朋友圈权限
- 分段函数sgnx的C语言程序,几个重要的分段函数
- 直播间实时在线人数方案
- GPU Skinning旋转指定骨骼
热门文章
- php增删改查心得体会,php增删改查入门示例
- arduino彩灯计时器电路_micro:bit是什么?和Arduino和单片机有什么不同?
- android webview 填充,从Android使用WebView自动填充表格
- android sqlite自定义函数,Android中自定义一个View的方法详解
- Redis的学习记录
- 2020年第十五届竞赛数据上报竞赛数据给高等教学学会统计
- 几款不同颜色LED的伏安特性
- 需要更换手机了:由 TensorFlow Lite 构建无人驾驶微型汽车
- 机械爪角度与距离之间的关系
- 全国大学生智能汽车竞赛浙江赛区选拔赛疫情防控工作预案