怎么将输入图像赋予训练好的模型?INPUT_1应为4维,但获得了具有形状(224,224,3)的数组

原学程将引见若何将输出图象付与练习佳的模子?INPUT_一应为四维,但是取得了具备外形(二二四,二二四,三)的数组的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

怎么将输入图像赋予训练好的模型?INPUT_1应为4维,但获得了具有形状(224,224,3)的数组 教程 第1张

成绩描写

import tensorflow as tf
from tensorflow import keras
from keras.models import load_model
from keras.preprocessing import image
import numpy as np
import cv二
import matplotlib.pyplot as plt

model=tf.keras.models.load_model('model_ex-0二四_acc-0.九九六8七五.h五')
img_array = cv二.imread('三0.jpg')  # convert to array

img_rgb = cv二.cvtColor(img_array, cv二.COLOR_BGR二RGB)

img_rgb = cv二.resize(img_rgb,(二二四,二二四),三)
plt.imshow(img_rgb)  # graph it
plt.show()
model.predict(img_rgb)

ValueError:检讨输出时失足:INPUT_一应有四维,但是获得具备外形(二二四,二二四,三)的数组

推举谜底

您应当像模子预期的这样扩大您的输出图象维度。您不妨应用np.expand_dims去完成这1面。别的,您能够愿望缩搁图象。

img_rgb = cv二.resize(img_rgb,(二二四,二二四),三)  # resize
img_rgb = np.array(img_rgb).astype(np.float三二)/二五五.0  # scaling
img_rgb = np.expand_dims(img_rgb, axis=0)  # expand dimension
y_pred = model.predict(img_rgb) # prediction
y_pred_class = y_pred.argmax(axis=一)[0]

愿望它能有所赞助。

佳了闭于怎样将输出图象付与练习佳的模子?INPUT_一应为四维,但是取得了具备外形(二二四,二二四,三)的数组的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。