2017-04-06 18 views
5

Potrzebuję utworzyć macierz w TensorFlow, aby zapisać pewne wartości. Sztuczka polega na tym, że matryca musi wspierać dynamiczny kształt.Zmienne o dynamicznym kształcie TensorFlow

staram się robić to samo chciałbym zrobić w numpy:

myVar = tf.Variable(tf.zeros((x,y), validate_shape=False) 

gdzie x=(?) i y=2. Ale to nie działa, ponieważ zera nie obsługują "częściowo znanego TensorShape", więc jak mam to zrobić w TensorFlow?

+0

Dlaczego potrzebny jest dynamiczny kształt? I nie możesz tego naprawić, używając None jako deskryptora kształtu? – rmeertens

+0

Ponieważ moja macierz zależy od liczby próbek w partii, która może ulec zmianie. O ile mi wiadomo, ani tf.zeros ani np.zeros nie akceptują None w kształcie. – gergf

+0

Ach, rozumiem. Czy mogę zapytać, co chcesz zrobić z tą matrycą? – rmeertens

Odpowiedz

1

1) Można użyć funkcji tf.fill(dims, value=0.0), która działa z dynamicznymi kształtami.

2) Można użyć zastępczy dla wymiaru zmiennej, jak np .:

m = tf.placeholder(tf.int32, shape=[]) 
x = tf.zeros(shape=[m]) 

with tf.Session() as sess: 
    print(sess.run(x, feed_dict={m: 5})) 
+0

Jaki jest wynikowy typ dtype operacji 'tf.fill (dims, value = 0.0)'? – reubenjohn

Powiązane problemy