2017-12-01 2 views
0

2D-TensorT[M, 1]에 있다고 가정합니다.TensorFlow - 2D 텐서와 스트라이드에서 N 번째 텐서를 모으는 3D 텐서 1

T = tf.expand_dims([A1, 
    B1, 
    C1, 
    A2, 
    B2, 
    C2], 1) 

와 나는 그렇게처럼 모양을 변경하려면 :

T_reshp = [[[A1], [A2]] 
      [[B1], [B2]] 
      [[C1], [C2]]] 

나는 MN 사전에 (각 그룹 텐서의 수) 알고있다. 나는 이것이 약간의 슬라이스를 사용하거나 작업을 재 형성 할 수

T_reshp = [[[A1], [B1]] 
      [[C1], [A2]] 
      [[B2], [C2]]] 

: 또한, 내가 함께 결국, 그러나 tf.reshape

T_reshp = tf.reshape(T, [P, N, 1]) 

사용하여 내가 시도에서 t_reshp.shape[0] = M/N = P하자?

답변

2

당신이 [N,P,1] 먼저 transpose 제 1 및 제 2 축 치수를 바꿀 수 있습니다

tf.transpose(tf.reshape(T, [N, P, 1]), [1,0,2]) 
#       ^^^^ switch the two dimensions here and then transpose 

:

T = tf.expand_dims([1,2,3,4,5,6], 1) 
sess = tf.Session() 
T1 = tf.transpose(tf.reshape(T, [2,3,1]), [1,0,2]) 

sess.run(T1) 
#array([[[1], 
#  [4]], 

#  [[2], 
#  [5]], 

#  [[3], 
#  [6]]], dtype=int32) 
+0

우아한 솔루션! –

관련 문제