Обучение регистрации и проверка достоверности в тензокартоне

Я пытаюсь узнать, как использовать тензорный поток и тензограмму. У меня есть тестовый проект, основанный на учебнике по нейронной сети MNIST ( https://www.tensorflow.org/versions/master/tutorials/mnist/tf/index.html ).

В моем коде я построил узел, который вычисляет долю цифр в наборе данных, которые правильно классифицируются, например:

correct = tf.nn.in_top_k(self._logits, labels, 1) correct = tf.to_float(correct) accuracy = tf.reduce_mean(correct) 

Здесь self._logits является частью вывода из графика, а labels – заполнителем, который содержит правильные метки.

Теперь то, что я хотел бы сделать, – это оценить точность как набора тренировок, так и проверки, установленной в ходе обучения. Я могу сделать это, запустив узел точности дважды, с разными параметрами feed_dicts:

 train_acc = tf.run(accuracy, feed_dict={images : training_set.images, labels : training_set.labels}) valid_acc = tf.run(accuracy, feed_dict={images : validation_set.images, labels : validation_set.labels}) 

Это работает по назначению. Я могу напечатать значения, и я вижу, что изначально две точности будут увеличиваться, и в конечном итоге точность проверки будет сглажена, а точность обучения будет возрастать.

Тем не менее, я также хотел бы получить графики этих значений в тензограмме, и я не могу понять, как это сделать. Если я просто добавлю scalar_summary к accuracy , зарегистрированные значения не будут различать набор тренировок и набор проверки.

Я также попытался создать два идентичных узла accuracy с разными именами и запустить их на обучающем наборе, а другой – в наборе проверки. Затем я добавляю scalar_summary к каждому из этих узлов. Это дает мне два графика в тензограмме, но вместо одного графика, показывающего точность набора тренировок, и один, показывающий точность установки валидации, они оба показывают одинаковые значения, которые не соответствуют ни тем, которые были напечатаны на терминале.

Возможно, я не понимаю, как решить эту проблему. Каков рекомендуемый способ отдельного протоколирования вывода из одного узла для разных входов?

One Solution collect form web for “Обучение регистрации и проверка достоверности в тензокартоне”

Существует несколько способов достижения этого, но вы на правильном пути с созданием разных tf.summary.scalar() . Поскольку вы должны явно вызывать SummaryWriter.add_summary() каждый раз, когда вы хотите регистрировать количество в файле событий, самый простой подход – это, вероятно, получить соответствующий итоговый узел каждый раз, когда вы хотите получить точность обучения или проверки:

 accuracy = tf.reduce_mean(correct) training_summary = tf.summary.scalar("training_accuracy", accuracy) validation_summary = tf.summary.scalar("validation_accuracy", accuracy) summary_writer = tf.summary.FileWriter(...) for step in xrange(NUM_STEPS): # Perform a training step.... if step % LOG_PERIOD == 0: # To log training accuracy. train_acc, train_summ = sess.run( [accuracy, training_summary], feed_dict={images : training_set.images, labels : training_set.labels}) writer.add_summary(train_summ, step) # To log validation accuracy. valid_acc, valid_summ = sess.run( [accuracy, validation_summary], feed_dict={images : validation_set.images, labels : validation_set.labels}) writer.add_summary(valid_summ, step) 

Кроме того, вы можете создать единый итоговый tf.placeholder(tf.string, []) чей тэг – tf.placeholder(tf.string, []) и, при необходимости, кормить строку "training_accuracy" или "validation_accuracy" .

  • Порт по умолчанию Tensorflow Tensorboard
  • Tensorflow 0.7.1 с Cuda Toolkit 7.5 и cuDNN 7.0
  • TensorFlow - почему эта регрессия sofmax не узнает ничего?
  • Почему реализация TensorFlow намного менее успешна, чем NN Matlab?
  • Повторная инициализация переменных в Tensorflow
  • TensorFlow в производстве для прогнозирования в реальном времени в приложении с высоким трафиком - как его использовать?
  • Тензорный поток nn mnist пример с измененными размерами слоя
  • Tensorflow на Android через Kivy
  • Python - лучший язык программирования в мире.