Проблемы с подачей данных в тензорный график - PullRequest
0 голосов
/ 03 марта 2019

Я обучил модель нейронной сети на MNIST наборе данных, используя скрипт mnist_3.1_convolutional_bigger_dropout.py, предоставленный в этом учебном пособии .

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

  • Метод 1 : изменение размера изображения до 28x28
  • Метод 2: упомянутая техника здесь используется

Оба эти метода приводят к ошибке

InvalidArgumentError (см. Выше для отслеживания): Выдолжен передать значение для тензора заполнителя 'Placeholder_2' с плавающей запятой dtype

Foregnet.py

# Importing libraries
from scipy.misc import imread
import tensorflow as tf
import numpy as np
import cv2 as cv
import glob

from test import imageprepare

files = glob.glob('data2/*.*')
#print(files)

# Method 1
'''
img_data = []
for fl in files:
    img = imageprepare(fl)
    img = img.reshape(img.shape[0], img.shape[1], 1)
    img_data.append(img)
'''

# Method 2
dig_cont = [cv.imread(fl, 0) for fl in files]
#print(len(dig_cont))

img_data = []
for i in range(len(dig_cont)):
    img = cv.resize(dig_cont[i], (28, 28))
    img = img.reshape(img.shape[0], img.shape[1], 1)
    img_data.append(img)


print("Restoring Model ...")

sess = tf.Session()

# Step-1: Recreate the network graph. At this step only graph is created.
tf_saver = tf.train.import_meta_graph('model/model.meta')

# Step-2: Now let's load the weights saved using the restore method.
tf_saver.restore(sess, tf.train.latest_checkpoint('model'))

print("Model restored")

x = tf.get_default_graph().get_tensor_by_name('X:0')
print('x :', x.shape)
y = tf.get_default_graph().get_tensor_by_name('Y:0')
print('y :', y.shape)

dict_data = {x: img_data}

result = sess.run(y, feed_dict=dict_data)
print(result)
print(result.shape)

sess.close()

1 Ответ

0 голосов
/ 18 апреля 2019

Проблема исправлена, я забыл передать значение переменной pkeep.Я должен был внести следующие изменения, чтобы он работал:

dict_data = {x: img_data, pkeep: 1.0}

вместо

dict_data = {x: img_data}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...