2016-11-02 1 views
0

tensorflow 맵 함수를 사용하려고하는데 인덱싱 문제가 발생합니다. 간단한 파이썬에서 tensorflow map_fun 인덱싱

, 나는 다음과 같은 작업을 수행하려고 : - "

tensorflow에서
for i in range(1,25): 
     u [i] = uold [i] - K * (uold [i] - uold [i-1]) 

, 내가 인해 인덱싱 문제가 발생하고을 (uold1을 [I] -uold1 [I-1]) ". 현재 나는 다음과 같이 선언문을 작성했습니다 : -

u = tf.map_fn (lambda u: uold - K * (uold - uold), uold) 

현재 수식에서 두 번째 항은 항상 0입니다. 원하는 출력을 얻으려면이를 변경하는 방법을 모르겠습니다.

답변

1

대신에 tf.pad()을 사용하여 오른쪽으로 1 차원 이동하는 텐서를 만든 다음 그 차이를 계산할 수 있습니다. 전의.

temp = uold_shifted_to_right - K * (uold - uold_shifted_to_right) 

나서 ( tf.slice() 사용) 온도에서 첫 번째 열을 꺼내.

+0

나는 다음과 같이했다 : - u0 = tf.map_fn (람다 : uold0 [1 :] - U * dt/dx * (uold0 [1 :] - tf.slice (uold0, [0] 24]), uold0) u0 = tf.pad (u0, [[0,0], [1,0]], "CONSTANT") – itsamineral

+0

그러나 출력 모양을 (25,25)으로 인쇄합니다. 나는 그것을 (1,25)해야한다. 왜 모든 요소에 같은 행렬을 복사하는지 모르겠습니다. – itsamineral