utilizar uso usarlo usar tensores que programar porque por espaƱol ejemplo documentacion con como casos tensorflow

uso - tensorflow como usarlo



tensorflow: ValueError: configuraciĆ³n de un elemento de matriz con una secuencia (2)

Este error no muy útil se produce cuando uno de los valores en el argumento feed_dict para tf.Session.run() es un objeto tf.Tensor (en este caso, el resultado de tf.reshape() ).

Los valores en feed_dict deben ser matrices numpy, o algún valor x que se pueda convertir implícitamente en una matriz numpy.array(x) usando numpy.array(x) . tf.Tensor objetos del tf.Tensor no se pueden convertir implícitamente , ya que hacerlo puede requerir mucho trabajo: en su lugar, debe llamar a sess.run(t) para convertir un tensor t en una matriz numpy.

Como notó en su respuesta, usar np.reshape(_y_, [-1, 1]) funciona, porque produce una matriz numpy (y porque _y_ es una matriz numpy para empezar). En general, siempre debe preparar los datos para ser alimentados usando numpy y otras operaciones de Python puro.

Estoy jugando con el código fijo de esta pregunta . Estoy obteniendo el error anterior. Google sugiere que podría ser algún tipo de desajuste de dimensiones, aunque mis diagnósticos no muestran ninguno:

with tf.Session() as sess: sess.run(init) # Fit all training data for epoch in range(training_epochs): for (_x_, _y_) in getb(train_X, train_Y): print("y data raw", _y_.shape ) _y_ = tf.reshape(_y_, [-1, 1]) print( "y data ", _y_.get_shape().as_list()) print("y place holder", yy.get_shape().as_list()) print("x data", _x_.shape ) print("x place holder", xx.get_shape().as_list() ) sess.run(optimizer, feed_dict={xx: _x_, yy: _y_})

Mirando las dimensiones, todo está bien:

y data raw (20,) y data [20, 1] y place holder [20, 1] x data (20, 10) x place holder [20, 10]

Error:

--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-131-00e0bdc140b2> in <module>() 16 print("x place holder", xx.get_shape().as_list() ) 17 ---> 18 sess.run(optimizer, feed_dict={xx: _x_, yy: _y_}) 19 20 # # Display logs per epoch step /usr/local/lib/python3.4/dist-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict) 355 e.args = (e.message,) 356 raise e --> 357 np_val = np.array(subfeed_val, dtype=subfeed_t.dtype.as_numpy_dtype) 358 if subfeed_t.op.type == ''Placeholder'': 359 if not subfeed_t.get_shape().is_compatible_with(np_val.shape): ValueError: setting an array element with a sequence.

¿Alguna sugerencia de depuración?


Reemplazar la nueva forma por uno numpy ayudó:

_y_ = np.reshape(_y_, [-1, 1])

la razón real por la cual aún no está claro, pero funciona.