2016-05-05 16 views
6

W Tensorflow, chciałbym przekonwertować tensor skalarny na liczbę całkowitą. Czy można to zrobić?Tensorflow: Jak przekonwertować tensor skalarny na zmienną skalarną w pythonie?

Potrzebuję utworzyć pętlę, a indeks pętli jest tensorem skalarnym, awewnątrz korpusu pętli chcę użyć indeksu do uzyskania dostępu do tablicy tensorów.

Na przykład:

idx = tf.constant(0) 
c = lambda i : tf.less(i, 10) 
def body(idx) : 
    i = # convert idx to int 
    b = weights[i] # access an entry in a tensor array, tensor cannot be used directly 
    .... 
    return idx+1 
tf.while_loop(c, body, [idx]) 
+0

znaleźliście żadnej odpowiedzi ?? udostępnij tutaj, proszę. –

Odpowiedz

-2

Trzeba ocenić tensora aby uzyskać wartość.

Jeśli chcesz to zrobić:

i = # convert idx to int 

można zrobić sess.run() lub idx.eval():

i = sess.run(idx) 
+0

Muszę to zrobić podczas budowy wykresu, a nie w sesji. Pętla while tworzy wykres. Czy to jest możliwe? – Fei

+0

@Fei nie jest to możliwe bez sesji sess.run()/eva(). Następnie możesz użyć numpy array. –

1

Trzeba stworzyć tf.Session() w celu oddanych tensora do skalarnych

with tf.Session() as sess: 
    scalar = tensor_scalar.eval() 

Jeśli używasz ipython notebooki, można użyć Interactive Session:

sess = tf.InteractiveSession() 
scalar = tensor_scalar.eval() 
# Other ops 
sess.close() 
Powiązane problemy