2016-07-06 13 views
1

私は次元の3Dマトリックスを持っています549x19x50私は549x950マトリックスを取得する2Dマトリックスを作成する必要があります。テンソルを使用して3Dマトリックスを2Dマトリックスに再構成する

これまでのところ、テンソルフローを使用していました。

#data_3d is the 3D matrix 
data_2d = tf.reshape(data_3d,[549,-1]) 

これは、プロンプトでdata_3dのすべての値を出力し、私はそれは私にNameError

data_3dを与えるdata_2dアクセスしようとすると、リストのリストのリストです。テンソルまたはndarrayではありません。リストに対してこれを行うことができない場合、リストをndarrayに簡単に変換する方法はありますか?事前に

おかげで、

Bhashithe

+0

なぜTensorflowだけですか? –

+0

私はテンソルフローを持つリカレントニューラルネットワークを使用する必要があります。これは私がテストしてきたもので、今のところよく知っています。 @GalDreiman – Bhashithe

+0

答えを見て、簡単な例で 'numpy'に基づいて答えを投稿します。 –

答えて

2

numpyを使用して、そうするための簡単な方法があります:

import numpy as np 

data_3d = np.arange(27).reshape((3,3,3)) 
data_2d = data_3d.swapaxes(1,2).reshape(3,-1) 

出力リレー:

data_2d 

[[0 3 6 1 4 7 2 5 8]
[9 12 15 10 13 16 11 14 17]
[18 21 24 19 22 25 20 23 26]

print data_3d 

[[[0 1 2]
[3 4 5]
[6 7 8]

[9 10 11]
[12 13 14]
[15 16 17]

[[18 19 20]
[21 22 23]
[24 25 26]]]

swapaxes(1,2)ここでの主なものです - あなたが交換したい軸を定義する必要があります。

+0

これはswapaxes()なしで動作しました。あなたの答えにスワップを追加した理由は分かりませんでした。 – Bhashithe

+1

これで、スワップする軸とリサーブする軸だけを選択します。 –

+0

となります。しかし、私の場合、交換は必要ではありませんでした。それを知って涼しい。おかげでガール! – Bhashithe

関連する問題