2017-08-25 3 views
1

Ich möchte ein Array mit mehrdimensionalen Arrays unterschiedlicher Formen gefüllt übergeben. Was ist der beste Weg, dies in einen Platzhalter für sess.run zu übertragen?Übergeben in Array von unterschiedlich großem Array tf.placeholder

Ich habe derzeit den folgenden Code, der nicht überraschend ist, einen Fehler zu erzeugen.

arr = tf.placeholder(tf.float32, shape=None, name='arr_placeholder') 
a1, a2, a3, ts = sess.run([model.a1, model.a2, model.a3, train_step], feed_dict={ 
     x_input: sub_batch[0], 
     y_input: sub_batch[1], 
     arr_input: arr}) 
arr = [a1, a2, a3] 

, die die Fehler produziert:

ValueError: setting an array element with a sequence. 

Unabhängig davon, gibt es immer noch ein Problem mit der 'arr_placeholder' Form.

+0

Was ist der Zweck dieser? Wenn Sie uns mehr Details geben, können wir Ihre wahren Bedürfnisse besser verstehen und Lösungen finden. Wenn Ihre Arrays die gleiche Anzahl von Dimensionen haben, ist es möglich, einen SparseTensor zu konstruieren, der alle von ihnen enthält. – bxshi

Antwort

1

Das Problem hängt mit der Eingabe feed_dict zusammen, die Eingabe sollte numpy array not list/placeholder sein.

a1, a2, a3, ts = sess.run([model.a1, model.a2, model.a3, train_step], feed_dict={ 
    x_input: np.asarray(sub_batch[0]), 
    y_input: np.asarray(sub_batch[1]), 
    arr_input: <this should be numpy array, not placeholder>}) 
Verwandte Themen