«Технология разработки» Преобразование между np.array и ndarray в MXNet

искусственный интеллект глубокое обучение

0. Введение

В MXNet,NDArrayЯвляется классом и основным инструментом для хранения и преобразования данных. Если вы использовали NumPy раньше, вы найдетеNDArrayОчень похоже на многомерные массивы NumPy. Тем не мение,NDArrayПредоставляет дополнительные функции, такие как вычисления на графическом процессоре и автоматический расчет градиента, которые позволяютNDArrayБольше подходит для глубокого обучения. Подобно тензору и переменным TensorFlow в pytorch, изучите метод работы 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)>