MXNet安装和NDArray

简介: MXNet安装和NDArray

1.MXNet安装


1.1 安装cuda和cuDNN


关于这个网上一堆教程,在我看来都是非常错误的,一堆驱动错误什么的,乱七八糟。这里推荐我的方法,在ubuntu18.04上试验通过:

  1. 官网下载cuda8.0或者9.0的deb(local) ,注意一定要下载deb版本的,而不是run文件,因为deb文件包含了驱动程序
  2. dpkg -i 安装deb文件,然后apt install cuda-8.0就可以自动安装了,安装的过程会自动下载相应的NVIDIA的驱动程序
  • 安装要求gcc和g++的版本如何相应的要求,比如cuda8.0需要gcc5。具体就是安装相应的版本,然后修改软连接


sudo apt install gcc-5 g++-5  
sudo rm /usr/local/cuda/bin/gcc  
sudo rm /usr/local/cuda/bin/g++  
sudo ln -s /usr/bin/gcc-5 /usr/local/cuda/bin/gcc  
sudo ln -s /usr/bin/g++-5 /usr/local/cuda/bin/g++


  1. 下载cuDNN的Linux压缩包,解压,拷贝,拷贝使用cp -P来拷贝软连接。


sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*


  1. 安装完添加路径


echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc


再次强调,个人经验,多看官网的那个安装指南的PDF文件,而不是去网上找乱七八糟的教程!!!


1.2 安装MXNet-Python


这里只推荐一种方法,virtualenv和pip,具体怎么操作看MXNet官网,说的很明白了。注意,pip install需要制定cuda的版本,比如pip install mxnet-cu80这种。


pip install --upgrade pip
pip install mxnet-cu80
sudo apt-get install graphviz
pip install graphviz


装完测试一下:


import mxnet as mx
a = mx.nd.ones((2, 3), mx.gpu())
b = a * 2 + 1
b.asnumpy()


能打印除b就没问题了。


2. NDArray模块


这是这篇的重点了,安装完MXNet就可以看看MXNet最重要的数据结构NDArray。NDArray是一种n维阵列,其中可包含类型与大小完全一致的项(32位浮点、32位整数等)。一句话,这种数据结构就是为了批量处理多通道的图像,比如MXNet中layer的一次输入最常见的结构就是(batch_size, channel, height, width)。


2.1 NDArray API


一句话:NDArrays与Numpy的Array极为类似,熟悉Numpy,用NDArray就很简单了。


a = mx.nd.array([[1,2,3], [4,5,6]])
>>> a.size
6
>>> a.shape
(2L, 3L)
>>> a.dtype
<type 'numpy.float32'>


默认情况下,一个NDArray可以保存32位浮点,不过这个大小可以调整。


import numpy as np
>>> b = mx.nd.array([[1,2,3], [2,3,4]], dtype=np.int32)
>>> b.dtype


NDArray的打印很简单,这样:


>>> b.asnumpy()
array([[1, 2, 3],
       [2, 3, 4]], dtype=int32)


NDArray支持所有需要的数学运算,例如可以试试看进行一个面向元素的矩阵乘法:


a = mx.nd.array([[1,2,3], [4,5,6]])  
>>> b = a*a  
>>> b.asnumpy()  
array([[ 1., 4., 9.],  
[ 16., 25., 36.]], dtype=float32)


再来个严格意义上的矩阵乘法(又叫“点积”)怎么样?


a = mx.nd.array([[1,2,3], [4,5,6]])
>>> a.shape
(2L, 3L)
>>> a.asnumpy()
array([[ 1.,  2.,  3.],
       [ 4.,  5.,  6.]], dtype=float32)
>>> b = a.T
>>> b.shape
(3L, 2L)
>>> b.asnumpy()
array([[ 1.,  4.],
       [ 2.,  5.],
       [ 3.,  6.]], dtype=float32)
>>> c = mx.nd.dot(a,b)
>>> c.shape
(2L, 2L)
>>> c.asnumpy()
array([[ 14.,  32.],
       [ 32.,  77.]], dtype=float32)


接着再来试试一些更复杂的运算:

初始化一个均匀分布的1000x1000矩阵并存储在GPU#0(此处使用了一个g2实例)。

初始化另一个正态分布的1000x1000矩阵(均值为1,标准差为2),也存储在GPU#0。


c = mx.nd.uniform(low=0, high=1, shape=(1000,1000), ctx="gpu(0)")
>>> d = mx.nd.normal(loc=1, scale=2, shape=(1000,1000), ctx="gpu(0)")
>>> e = mx.nd.dot(c,d)


别忘了,MXNet可以在CPU和GPU上实现一致的运行结果。这就是个很棒的例子:只要将上述代码中的“gpu(0)”替换为“cpu(0)”,就可以通过CPU运行这个点积。

差不多NDArray就介绍这些了,因为和Numpy实在太像了,没啥可过多介绍的。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
1月前
|
机器学习/深度学习 算法 测试技术
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
本文是关于如何搭建深度学习环境,特别是使用mmdetection进行CPU安装和训练的详细指南。包括安装Anaconda、创建虚拟环境、安装PyTorch、mmcv-full和mmdetection,以及测试环境和训练目标检测模型的步骤。还提供了数据集准备、检查和网络训练的详细说明。
86 5
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
|
1月前
|
机器学习/深度学习 并行计算 PyTorch
深度学习环境搭建笔记(一):detectron2安装过程
这篇博客文章详细介绍了在Windows环境下,使用CUDA 10.2配置深度学习环境,并安装detectron2库的步骤,包括安装Python、pycocotools、Torch和Torchvision、fvcore,以及对Detectron2和PyTorch代码的修改。
89 1
深度学习环境搭建笔记(一):detectron2安装过程
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
【Deepin 20深度探索】一键解锁Linux深度学习潜能:从零开始安装Pytorch,驾驭AI未来从Deepin出发!
【8月更文挑战第2天】随着人工智能的迅猛发展,深度学习框架Pytorch已成为科研与工业界的必备工具。Deepin 20作为优秀的国产Linux发行版,凭借其流畅的用户体验和丰富的软件生态,为深度学习爱好者提供理想开发平台。本文引导您在Deepin 20上安装Pytorch,享受Linux下的深度学习之旅。
86 12
|
6月前
|
机器学习/深度学习 TensorFlow API
Python安装TensorFlow 2、tf.keras和深度学习模型的定义
Python安装TensorFlow 2、tf.keras和深度学习模型的定义
|
6月前
|
机器学习/深度学习 人工智能 PyTorch
【Hello AI】安装和使用AIACC-AGSpeed(优化PyTorch深度学习模型)
AIACC-AGSpeed(简称AGSpeed)专注于优化PyTorch深度学习模型在阿里云GPU异构计算实例上的计算性能,相比原始的神龙AI加速引擎AIACC,可以实现无感的计算优化性能。本文为您介绍安装和使用AGSpeed的方法。
|
6月前
|
机器学习/深度学习 Shell 数据安全/隐私保护
深度学习-虚拟机当服务器的安装环境
深度学习-虚拟机当服务器的安装环境
|
机器学习/深度学习 人工智能 Linux
Linux和Windows系统下安装深度学习框架所需支持:Anaconda、Paddlepaddle、Paddlenlp、pytorch,含GPU、CPU版本详细安装过程
Linux和Windows系统下安装深度学习框架所需支持:Anaconda、Paddlepaddle、Paddlenlp、pytorch,含GPU、CPU版本详细安装过程
Linux和Windows系统下安装深度学习框架所需支持:Anaconda、Paddlepaddle、Paddlenlp、pytorch,含GPU、CPU版本详细安装过程
|
机器学习/深度学习 并行计算 PyTorch
【RTX 3060Ti 深度学习环境配置图文(安装Anaconda、VScode、CUDA、CUDNN、pytorch)】
【RTX 3060Ti 深度学习环境配置图文(安装Anaconda、VScode、CUDA、CUDNN、pytorch)】
400 0
【RTX 3060Ti 深度学习环境配置图文(安装Anaconda、VScode、CUDA、CUDNN、pytorch)】
|
机器学习/深度学习 并行计算 Ubuntu
系统类配置(二)【深度学习装机详细教程-ubuntu16.04下安装cuda9.0+nvidia-384+cudnn7.1.4+tensorflow1.9。】(下)
系统类配置(二)【深度学习装机详细教程-ubuntu16.04下安装cuda9.0+nvidia-384+cudnn7.1.4+tensorflow1.9。】(下)
205 0
|
机器学习/深度学习 并行计算 Ubuntu
系统类配置(二)【深度学习装机详细教程-ubuntu16.04下安装cuda9.0+nvidia-384+cudnn7.1.4+tensorflow1.9。】(上)
系统类配置(二)【深度学习装机详细教程-ubuntu16.04下安装cuda9.0+nvidia-384+cudnn7.1.4+tensorflow1.9。】(上)
162 0