Ich versuche, ein Faltungsnetzwerk mit Tensorflow zu trainieren. Eingabe in die Faltungsschicht sind 3 Chaneel Color Images und die Ausgabe (Label) sind Single-Channel-Bilder. Ich verwende tfrecord und Warteschlangen. Die dequeue op ist unten angegebenDequeue heißt zwei Mal für Einzeltraining Batch
image, labelImage = queue.dequeue_many(BATCH_SIZE)
Bild geht als Eingabe zu ersten Faltungsschicht und die labelImage verwendet Verlust zu berechnen.
conv1 = tf.layers.conv2d(inputs=img,filters=8,kernel_size=5,padding='SAME',activation=tf.nn.relu)
.....
.....
finaldeconv = tf.layers.conv2d_transpose(inputs=deconv2,filters=1,kernel_size=5,strides=(2,2),padding='SAME',activation=tf.nn.relu)
loss = tf.divide(tf.square(tf.subtract(labelImage,finaldeconv)),2)
cost = tf.reduce_mean(loss)
optimiser = tf.train.AdamOptimizer(LEARNING_RATE)
train = optimiser.minimize(cost)
Also, wenn ich jetzt trainieren innen Sitzung
sess.run(train)
Die op fordert den obigen Code wie folgt sein sollte: -
Zug op Verlust op nennt. Verlust op ruft labeImage und finaldeconv finaldeconv KONV1 ruft KONV1 Bild
Bild und labelImage beide Anruf dequeop
I dont get Bild fordert konv Schicht und entsprechenden labelImage Verlust für die Berechnung. image und LabelImage führt separate Aufrufe von Deque aus. Wie kann ich das beheben?
Eine Möglichkeit besteht darin, Platzhalter zu verwenden und image und labelImage den Platzhaltern zuzuordnen, aber ich möchte keine Zeit beim Kopieren in GPU haben. Ich habe bereits die Warteschlange auf GPU.
Zunächst einmal danke für die Antwort. Ich möchte bestätigen, dass ich Ihre Antwort richtig verstanden habe. Ein Trainingsbeispiel, das in die Warteschlange eingefügt wird, ist im Listenformat ex [image, labelImage]. Ich habe create queue wie folgt: - queue = tf.RandomShuffleQueue (Kapazität = 100, min_after_dequeue = 2, dtypes = [ tf.float32, tf.float32], shapes = [(IMAGE_ROWS, IMAGE_COLS, 3), (IMAGE_ROWS, IMAGE_COLS)]) Wenn ich jetzt nur sess.run (train) anrufe, ruft es den dequeue op nur einmal an per iteration? Wenn ja, image und labelImage sind Paar und mein Problem wird gelöst. –
ja, du hast es richtig verstanden – nessuno