2017-04-04 3 views
1

Ich versuche, dieses (https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/multilayer_perceptron.py) Tutorial mit meinen eigenen Daten zu verwenden, aber es konnte nicht funktionieren. Meine Daten sind [1X10] große Vektoren. Tutorial ist über MNIST Daten und ich versuche, das System mit verschiedenen Arten von Vektoren zu füttern.Wie kann ich die Batchgröße bestimmen, wenn ich den Tensorfluss mit meinen eigenen Daten verwende?

Ich erhalte die Fehlermeldung:

% (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape()))) 
ValueError: Cannot feed value of shape (0, 1) for Tensor u'Placeholder_1:0', 
    which has shape '(?, 2)' 

Fehler von batch_x und batch_y entstehen, aber ich kann nicht herausfinden, wie sie zu entscheiden. Ich werde jede Idee schätzen, um dieses Problem zu lösen.

Dank

# Training cycle 
 
    for epoch in range(training_epochs): 
 
     avg_cost = 0. 
 
     total_batch = int(train_data.shape[0]/batch_size) 
 
     # Loop over all batches 
 
     for i in range(total_batch): 
 

 

 
      batch_x = train_data[:i*batch_size] 
 
      batch_y = train_labels[:i*batch_size] 
 

 
      np.reshape(batch_x, (-1, 10)) 
 
      np.reshape(batch_y, (-1, 1)) 
 
      # Run optimization op (backprop) and cost op (to get loss value) 
 
      _, c = sess.run([optimizer, cost], feed_dict={x: batch_x, 
 
                  y: batch_y}) 
 
      # Compute average loss 
 
      avg_cost += c/total_batch 
 
     # Display logs per epoch step 
 
     if epoch % display_step == 0: 
 
      print("Epoch:", '%04d' % (epoch+1), "cost=", \ 
 
       "{:.9f}".format(avg_cost)) 
 
    print("Optimization Finished!")

Antwort

0

Der Fehler ist wahrscheinlich mit, wie Ihr batch_y aussieht. Es scheint, dass Ihr Eingabe-Platzhalter y Tensoren der Größe [?, 2] erwartet (hier bezieht sich ? auf variable Größe), aber Sie füttern Tensoren der Größe [0, 1]. Während es schon seltsam ist, dass Ihre erste Dimension y_batch 0 ist (ich würde überprüfen, warum das passiert) gibt es auch das Problem, dass die zweite Dimension von y_batch scheint 1 zu sein, wenn es erwartet wird, 2 zu sein - das ist wahrscheinlich, warum Sie sehen Dieser Fehler. Warum verformen Sie batch_y, bevor Sie es dem Modell zuführen (np.reshape(batch_y, (-1, 1)))? Das Modell definiert die Eingabe-Platzhalter in einer bestimmten Form (für Sie beispielsweise [?, 2]) und Sie müssen diese Form sowohl während des Trainings als auch während des Tests immer einhalten.

Verwandte Themen