『开发技术』MXNet中np.array与ndarray相互转换

0.背景介绍

在MXNet中,NDArray是一个类,也是存储和变换数据的主要工具。如果你之前用过NumPy,你会发现NDArray和NumPy的多维数组非常类似。然而,NDArray提供GPU计算和自动求梯度等更多功能,这些使NDArray更加适合深度学习。类似于TensorFlow的tensor与pytorch中的variable,学习NumPy操作方式,实现GPU计算,由于NumPy不支持GPU。

1.问题描述

有时候我们需要将NDArray和NumPy的多维数组相互转换来实现目标功能。在MXNet中可以通过array函数和asnumpy函数令数据在NDArray和NumPy格式之间相互变换。下面将NDArray实例变换成NumPy实例。

In [1]:

import mxnet as mx

In [2]:

x_nd = mx.nd.arange(12).reshape([-1,3])
x_nd

Out[2]:

[[ 0.  1.  2.]
 [ 3.  4.  5.]
 [ 6.  7.  8.]
 [ 9. 10. 11.]]
<NDArray 4x3 @cpu(0)>

In [3]:

x_np = x_nd.asnumpy()
x_np

Out[3]:

array([[ 0.,  1.,  2.],
       [ 3.,  4.,  5.],
       [ 6.,  7.,  8.],
       [ 9., 10., 11.]], dtype=float32)

再将NumPy实例变换成NDArray实例。

In [4]:

x_nd1 = mx.nd.array(x_np)
x_nd1

Out[4]:

[[ 0.  1.  2.]
 [ 3.  4.  5.]
 [ 6.  7.  8.]
 [ 9. 10. 11.]]
<NDArray 4x3 @cpu(0)>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券