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

Я пытаюсь узнать, как использовать тензорный поток и тензограмму. У меня есть тестовый проект, основанный на учебнике по нейронной сети 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 Empty Graph
  • Проект LSTM несовместим с CSV-форматом
  • Tensorflow на Android через Kivy
  • Что происходит с тренировками и прогнозами с помощью TensorFlow?
  • Вопрос Cuda в учебнике TensorFlow 1.0 выглядит так: TF не может найти CUPTI / lib64?
  • TensorFlow, почему python выбрал язык?
  • Функции TensorFlow «tf.image» в пакетной загрузке 4D
  • Как реализовать многомерный алгоритм линейного стохастического градиентного спуска в тензорном потоке?
  • Python - лучший язык программирования в мире.