2016-12-28 3 views
0

Я хочу вычислить и отобразить точность на тестовом наборе во время обучения в сети.Tensorflow: метрики времени выполнения и очереди данных

В MNIST tutorial, который использует каналы, можно видеть, что это можно сделать легко, подавая данные теста, а не данные поезда. Простое решение простой задачи.

Однако я не могу найти такой простой пример при использовании очередей для пакетной обработки. AFAICS в документации предлагаются два решения:

  1. Оффлайн-тестирование с сохраненными состояниями. Я не хочу офлайн.
  2. Создание второй «тестовой» сети, разделяющей весы с обученной сетью. Это не кажется простым, и я не видел этого.

Есть ли третий, простой способ вычисления метрик теста во время выполнения? Или есть пример где-то из второй, тестовой сети с общим весом, которая доказывает мне неправильность, будучи супер простой в реализации?

ответ

0

Если я правильно понял ваш вопрос, вы хотите проверить свою модель во время обучения с входами в очередь, а не feed_dict? см. Мой program это делает. Вот краткое объяснение:

Прежде всего, необходимо преобразовать вам данные в поезд и проверки файлов, таких как «train.tfreords» и «» valid.tfreocrds

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

в моей программе это делается с помощью

with tf.variable_scope("inference") as scope: 
     logits = mnist.inference(images) 
     scope.reuse_variables() 
     validation_logits = mnist.inference(validation_images) 

затем используйте logits, чтобы получить потерю поезда и свести его к минимуму и использовать validation_logits для получения достоверной точности

Смежные вопросы