2016-11-07 3 views
6

Я работаю над созданием простого примера игрушек в TensorFlow, и я столкнулся с странной ошибкой. У меня есть два заполнителей, определенных следующим образом:Как подавать заполнитель Tensorflow с помощью массивов numpy?

x = tf.placeholder(tf.float32, shape=[None,2]) [two-parameter input] 

y_ = tf.placeholder(tf.float32, shape=[None,2]) [one-hot labels] 

я потом пытаться кормить эти заполнители с feed_dict определена как:

feed_dict={x: batch[0].astype(np.float32), y_: batch[1].astype(np.float32)} 

Где batch[0] и batch[1] оба Numpy ndarrays размера (100,2) [проверить, распечатав их соответствующие размеры]

При попытке запустить модель, я получаю ошибку:

"InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float"

, вызванный моим Заместителем «x», определенным выше

Может ли кто-нибудь сказать, что я делаю неправильно? Я просмотрел несколько примеров в Интернете, и похоже, что это должно сработать ... Есть ли другой способ заполнить заполнители значениями из массивов numpy?

Если это помогает, я работаю в Ubuntu, SCL и Python 2.7, и у меня установлены все стандартные пакеты numpy и tensorflow.

+0

Чтобы помочь с отладкой, вы можете дать всем тензорам и операциям имя, например. путем выполнения 'x = tf.placeholder (..., name = 'x')'. Тогда сообщения об ошибках гораздо менее загадочны. – sunside

+0

Ваш код должен был работать, я сделал то же самое в своей машине, то есть загружал 'tf.placeholder'' numpy.ndarray' того же типа ('float32'). Это помогло бы, если бы вы дали сообщение об ошибке. –

ответ

4

Без вашего всего кода точно ответить точно. Я попытался воспроизвести то, что вы описали в примере с игрушкой, и это сработало.

import tensorflow as tf 
import numpy as np 

x = tf.placeholder(tf.float32, shape=[None, 2]) 
y_ = tf.placeholder(tf.float32, shape=[None, 2]) 
loss = tf.reduce_sum(tf.abs(tf.sub(x, y_)))#Function chosen arbitrarily 
input_x=np.random.randn(100, 2)#Random generation of variable x 
input_y=np.random.randn(100, 2)#Random generation of variable y 

with tf.Session() as sess: 
    print(sess.run(loss, feed_dict={x: input_x, y_: input_y})) 
Смежные вопросы