Kürzlich möchte ich das GAN-Modell implementieren und tf.Dataset und Iterator verwenden, um Gesichtsbilder als Trainingsdaten zu lesen.Wie bekomme ich den besten Batch nach dem Ausführen von Iteration.get_next() in Tensorflow?
der Datenmenge und Iteratorobjekt Code ist:
self.dataset = tf.data.Dataset.from_tensor_slices(convert_to_tensor(self.data_ob.train_data_list, dtype=tf.string))
self.dataset = self.dataset.map(self._parse_function)
#self.dataset = self.dataset.shuffle(buffer_size=10000)
self.dataset = self.dataset.apply(tf.contrib.data.batch_and_drop_remainder(batch_size))
self.iterator = tf.data.Iterator.from_structure(self.dataset.output_types, self.dataset.output_shapes)
self.next_x = self.iterator.get_next()
Mein neues GAN-Modell ist:
self.z_mean, self.z_sigm = self.Encode(self.next_x)
self.z_x = tf.add(self.z_mean, tf.sqrt(tf.exp(self.z_sigm))*self.ep)
self.x_tilde = self.generate(self.z_x, reuse=False)
#the feature
self.l_x_tilde, self.De_pro_tilde = self.discriminate(self.x_tilde)
#for Gan generator
self.x_p = self.generate(self.zp, reuse=True)
# the loss of dis network
self.l_x, self.D_pro_logits = self.discriminate(self.next_x, True)
Also, das Problem ist, dass ich die self.next_x als Eingang Tensor zweimal verwenden. Der Datensatz für jedes Mal ist anders. So, wie man dieses Problem löst, um den ersten Stapel für die Wiederverwendung zu behalten?
danke, ich denke, dieses Gerät ist richtig. – zhangqianhui
Jederzeit. Bitte implementieren Sie es und wenn es funktioniert und keine besseren Antworten gegeben werden, markieren Sie meine Antwort als richtig! –
Was ist gut genug oder schlecht für Ihren Fall? Ich wechselte zu placeholder_with_default und es gab keine spürbare Verbesserung der Geschwindigkeit pro Batch, zumindest in der Art, wie ich es gemessen habe. –