TF-Slim Resnet предварительно обученная модель не может получить правильные результаты
Я использую предварительно обученный resnet50
модель предоставлена tensorflow slim
, Когда я использую эту модель для вывода, я не могу получить правильный результат. Кто-нибудь может помочь мне решить проблему? Ниже приведен код, который я использовал для вывода. Метод предварительной обработки изображения, следующий за этой проблемой Предварительная обработка ResNet: VGG или Inception?
import tensorflow as tf
import tensorflow.contrib.slim.nets as nets
import imagenet
import urllib.request
from preprocessing import inception_preprocessing
import matplotlib.pyplot as plt
import numpy as np
slim = tf.contrib.slim
resnet = nets.resnet_v1
if __name__ == '__main__':
ckpt_file_path = '../model_weights/resnet_v1_50.ckpt'
url = 'https://upload.wikimedia.org/wikipedia/commons/7/70/EnglishCockerSpaniel_simon.jpg'
image_string = urllib.request.urlopen(url).read()
image = tf.image.decode_jpeg(image_string, channels=3)
processed_image = inception_preprocessing.preprocess_image(image, 224, 224, is_training=False)
processed_images = tf.expand_dims(processed_image, 0)
with slim.arg_scope(nets.resnet_utils.resnet_arg_scope()):
resnet_50, end_points = resnet.resnet_v1_50(inputs=processed_images, num_classes=1000, scope='resnet_v1_50')
prob = tf.squeeze(resnet_50, axis=[1, 2])
probabilities = tf.nn.softmax(prob, dim=-1)
sess = tf.Session()
saver = tf.train.Saver()
saver.restore(sess, ckpt_file_path)
np_image, results = sess.run([image, probabilities])
results = results[0, 0:]
plt.figure()
plt.imshow(np_image.astype(np.uint8))
plt.axis('off')
plt.show()
sorted_inds = [i[0] for i in sorted(enumerate(-results), key=lambda x: x[1])]
names = imagenet.create_readable_names_for_imagenet_labels()
for i in range(5):
index = sorted_inds[i]
print('Probability %0.2f%% => [%s]' % (results[index] * 100, names[index]))
Вывод кода:
Probability 1.00% => [moving van]
Probability 0.69% => [television, television system]
Probability 0.63% => [English foxhound]
Probability 0.63% => [beagle]
Probability 0.61% => [German short-haired pointer]
Реальные результаты EnglishCockerSpaniel
,
0 ответов
Попробуйте использовать resnetv2 из tensorflow slim с начальной предварительной обработкой и размером 299. Ниже приведены результаты для предоставленного изображения.
Вероятность 0,22% => [кокер-спаниель, английский кокер-спаниель, кокер]
Вероятность 0,18% => [Суссекс-спаниель]
Вероятность 0,17% => [английский сеттер]
Вероятность 0,17% => [ищейка, сыщик]
Вероятность 0,17% => [Афганская борзая, Афганская]