mxnetインポートND
作成ベクトル
#行ベクトル作成 (12はX = nd.arangeに) プリント(X)を #を出力するXサイズの プリント(x.shape) #形状ベクトルxを変更する(3,4) X- = x.reshape(3,4 ) プリント(X-) Y = x.reshape(3、-1 ) プリント(Y) #は、各要素が0、形状(2,3,4)テンソルで作成 Z = nd.zeros((2,3、 4 )) プリント(Z) #リストで指定された各要素の値作成NDArray X2 = nd.array([2,1,4,3] 、[1,2,3,4]、[4 、3,2,1 ]]) プリント(X2) #NDArrayの各要素のためにランダムに生成された値 X3 = nd.random.normal(0,1、形状=(3,4 )) プリント(X3)
データ操作
印刷(X- + Y) #を押して乗算 を印刷(X- * Y) #要素分割 印刷(X- / Y) #を押し要素行う指数 印刷(Y.exp()) #DOT行列乗算 印刷(nd.dot(X- 、YT)) #のマトリクス接続 #行接続 プリント(nd.concat(X、Y、薄暗い= 0)) #1 列接続 プリント。(nd.concat(X、Y、=薄暗い1 )) #X - == Y 印刷 - (== X Y) #X.sum 印刷(X.sum()) #私たちは、関数の結果は、Pythonでのスカラーに変換されasscalarできます。サブメニューの例上記L2ノルム結果に⾯実施形態のX #⼀サンプルは、単一の要素NDArrayであるが、最終的な結果は、スカラのPythonに変換され。 印刷(X.norm()。asscalar())
ブロードキャストメカニズム
「」 ' によって2つの異なる形状NDArray場合 要素動作は、ワイドマルチキャスト(ブロードキャスト)メカニズムをトリガすることができる:最初のこれら二つNDArrayの要素正しい形状コピー 操作後の要素と同じ。 '' ' A = nd.arange(3).reshape((3,1 )) B = nd.arange(2).reshape((1,2 )) プリント(A) プリント(B) ' '' A以来そしてBは、+ Bを計算する3⾏1,1⾏2マトリクスである、そして、第1フレーム列の3つの要素は、フルワイド放送される 第2ショット列Bの最初のショットに(コピー)⾏ワイド2つの要素は第二のショットと第⾏⾏に(コピー)放送されます。したがって、それは可能である 要素を追加することにより、2つの行列2 3⾏ため。 '' ' プリント(A + B) #1 インデックス ' '' 例は、3-⾏⾏⼀インデックス行列2は、それぞれ、それぞれ0、1、2、列インデックス0及び1です。 '' ' プリント(X-) プリント(X- [1 :. 3 ]) ' '' 個々の要素の位置は、行列⾏と列インデックス、及び再割り当てのための要素として、アクセスするNDArrayニーズに指定された 「「」 X- [ 9。1,2] = 「」」 ⼀素子部を撮影し、それらを再割り当て。各列の要素1のための次の、我々は⾏⼀インデックスの例サブメニュー画面が再割り当てである 「」 ' [X- = 12である:2、1] 印刷(X-)
メモリのオーバーヘッド操作
「」 ' ⼀素子部を撮影し、それらを再割り当てします。1つのあたり次の、我々 ⾏インデックスの例サブメニュー画面 ⼀列要素の再割り当て しますが、特定のメモリ結果を指定したい場合は、私たちはインデックスの元を交換するために⾏に導入⾯使用することができます。次のための例示サブメニュー画面は、 まずzeros_likeによって作成され、Zで示される、要素が同じとNDArray 0であるY字型 '' ' Z = Y.zeros_like() の前に = ID(Z) Z [:] = + X- Yの 印刷(ID(Z)== 前) ' '' 実際には、例ではX + Yに開口計算結果を格納するための一時メモリは、対応するメモリにコピーZ. あなたがいる場合 、この一時的なメモリのオーバーヘッドを回避したい、我々は、パラメータの関数の完全な名前から演算子を使用することができます。 '' ' Nd.elemwise_add(X、Y、OUT = Z) を印刷(ID(Z)== 前は) ' '' プログラム後のXの値がない場合に使用をコピーしていない、我々はそれを使用することができますX [:] = X + YまたはX + Y =オペレーションメモリのオーバーヘッドを削減します '' 'ID(X) X + = Yの 印刷(前ID(X)==)
NDArrayとnumpyの相互変換
インポートnumpyのNP ASの #NDArray例例にnumpyのに対して P = np.ones((2,3 )) D = nd.array(P) 印刷(P) 印刷(D) #numpyの例にNDArrayインスタンス D = D.asnumpy() プリント(" ================== " ) プリント(型の(D))