2017-06-11 1 views
0

テンソルの形状を(3,4)から(1,3,4)に変更したいので、get_shape()。as_list()を使って元の形をして、挿入を使用してこのリストを変更しようとすると、次元情報を含むオリジナルのリストがNoneになっています。または、テンソルを(3,4)から(1,3,4)に変更したい場合、私は何ができますか?リストをテンソル形式で要素を挿入すると、リスト全体がなくなる

a=np.random.random([3,4]) 
a=tf.constant(a) 
g=a.get_shape().as_list() 
g 
#[3,4] 
g=a.get_shape().as_list().insert(0,1) 
type(g) 
#NoneType 

答えて

0

なぜtf.reshape()を使用しないのですか?

>>> a=np.random.random([3,4]) 
>>> a=tf.constant(a) 
>>> a 
<tf.Tensor 'Const_2:0' shape=(3, 4) dtype=float64> 
>>> a=tf.reshape(a, (1, 3, 4)) 
>>> a 
<tf.Tensor 'Reshape_2:0' shape=(1, 3, 4) dtype=float64> 

編集:Pythonでは、リストの.insert()メソッドは何も返しません。したがって、あなたはNone型を得る。参照:https://www.tutorialspoint.com/python/list_insert.htm

一時的なリストとしてgを使用する必要があります。これを試して;

>>> a=np.random.random([3,4]) 
>>> a=tf.constant(a) 
>>> a 
<tf.Tensor 'Const_1:0' shape=(3, 4) dtype=float64> 
>>> g=a.get_shape().as_list() 
>>> g 
[3, 4] 
>>> g.insert(0, 1) 
>>> g 
[1, 3, 4] 
>>> a=tf.reshape(a, g) 
>>> a 
<tf.Tensor 'Reshape:0' shape=(1, 3, 4) dtype=float64> 
+0

申し訳ありませんが、私は明らかにしませんでした。私の次元がわからない、より高次元のテンソルに対処する必要がある場合はどうすればよいでしょうか?私が与えた例は少し誤解を招く。 – DDz

+0

これは意味が分かりました。更新された答えを確認してください。 –

+0

@DDzこの回答または回答があなたの質問を解決した場合は、チェックマークをクリックして受け入れることを検討してください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。 –

関連する問題