Не удалось восстановить с контрольной точки - тензор потока - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть функция cnn-bn-relu, которая выполняет серию сверток-пакетной нормализации-Relu и возвращает вывод.с помощью обученной модели, полученной из вышеупомянутой функции, я пытаюсь протестировать модель не только с тестовыми изображениями, но и с ее расширенными копиями

шаг 1. Ввод исходного изображения в функцию cnn-bn-relu

test_reconstructed_image_1_output=cnn-bn-relu(test_image_1,weights_layer_1,weights_layer_2,weights_layer_3,weights_layer_4)

шаг 2. Затем передаем его расширенную копию функции cnn-bn-relu

test_reconstructed_aug_image_1_output=cnn-bn-relu(test_aug_image_1,weights_layer_1,weights_layer_2,weights_layer_3,weights_layer_4)

После двух вышеупомянутых шагов явосстановил веса обученной модели и попытался получить выходные данные шага 1 и шага 2. Но я получаю следующую ошибку

NotFoundError (см. выше для отслеживания): восстановление из контрольной точки не удалось.Скорее всего, это связано с отсутствием в контрольной точке имени переменной или другого ключа графика.Пожалуйста, убедитесь, что вы не изменили ожидаемый график на основе контрольной точки.Исходная ошибка:

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

Ниже приведен код, который я использовал.

Step 1:
Reading the images from tensorflow record using dataset api
test_dataset = (tf.data.TFRecordDataset(test_tfrecords_filename_label)
      .map(read_and_decode,num_parallel_calls=multiprocessing.cpu_count())
      .prefetch(1))
iterator = test_dataset.make_one_shot_iterator()
test_image_1,aug_test_image_1= iterator.get_next()

Step 2:
# Calculating convolution for original image
test_reconstructed_image_1_output=cnn-bn-relu(test_image_1,weights_layer_1,weights_layer_2,weights_layer_3,weights_layer_4)
# Calculating convolution for augmented copy of original image
test_reconstructed_aug_image_1_output=cnn-bn-relu(test_patches_image_1,weights_layer_1,weights_layer_2,weights_layer_3,weights_layer_4)

Step 3:restoring the model and running the tensorflow session
saver1 = tf.train.Saver()
sess1 = tf.Session()
saver1.restore(sess1,  "model.ckpt")
for i in range(0,3):
   output_1,output_2 = sess1.run( test_reconstructed_image_1_output,test_reconstructed_aug_image_1)

Приведенный выше код выдает ошибку, упомянутую выше.

If i comment the line
test_reconstructed_aug_image_1_output=cnn-bn- relu(test_patches_image_1,weights_layer_1,weights_layer_2,weights_layer_3,weights_layer_4)

and replace 
for i in range(0,3):
       output_1,output_2 = sess1.run( 
test_reconstructed_image_1_output,test_reconstructed_aug_image_1)

with
for i in range(0,3):
       output_1= sess1.run( test_reconstructed_image_1_output)

Я не получаю ошибку.

Может кто-нибудь подсказать мне, как я могу изменить код, чтобы получить оба output_1, output_2 без ошибки.

...