【问题标题】:Why are my inception-v3 (in Keras) predictions all wrong?为什么我的 inception-v3(在 Keras 中)的预测都是错误的?
【发布时间】:2017-07-09 11:47:42
【问题描述】:

我是一名 ML 初学者,只是使用 ImageNet 权重实现 inception-v3。这是我第一次尝试它。我的实现是在 Keras 中。我的预测都是错误的,我需要站起来,看看问题出在哪里。实际上很难找到使用 Keras 在线从上到下使用的 inception-v3 示例。大多数是关于迁移学习的教程。这是我的代码。

import keras as k
from keras.applications.inception_v3 import InceptionV3
from keras.applications.imagenet_utils import preprocess_input, decode_predictions
from keras.preprocessing import image
import cv2
import numpy as np

model = k.applications.inception_v3.InceptionV3(include_top=True, weights='imagenet', input_tensor=None, input_shape=None)

im = 'images/cat.jpg'
cv2.imread(im).shape

(168, 299, 3)

im = cv2.resize(cv2.imread(im), (299, 299)).astype(np.float32)
im = np.expand_dims(im, axis=0)
im.shape

(1, 299, 299, 3)

preds = model.predict(im)
print('Predicted:', decode_predictions(preds

预测:[[('n03047690', 'clog', 1.0), ('n01924916', '扁虫', 7.0789714e-11), ('n03950228', '投手', 2.1705252e-11), ( 'n02841315', '双筒望远镜', 4.1622389e-13), ('n06359193', 'web_site', 3.8697981e-16)]]

有人可以建议这个最基本的实现是如何错误的。也许我的输入形状不正确?

【问题讨论】:

    标签: machine-learning keras conv-neural-network imagenet


    【解决方案1】:

    inception-v3 模型要求您在预测之前通过preprocess_input() 运行您的图像。

    添加:

    im=preprocess_input(im)
    

    另外,您应该从keras.applications.inception_v3 导入preprocess_input 而不是from keras.applications.imagenet_utils

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-07
      • 2017-06-12
      • 1970-01-01
      • 2019-07-14
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      相关资源
      最近更新 更多