python TensorFlow顺序模型无法识别数据的完整形状

csga3l58  于 2023-05-27  发布在  Python
关注(0)|答案(1)|浏览(199)
import tensorflow as tf
from traffic import IMG_WIDTH, IMG_HEIGHT
import cv2
import os
import numpy as np
model = tf.keras.models.load_model("neural-network")
image = cv2.imread("gtsrb\\1\\00000_00000.ppm")
image = cv2.resize(image, (IMG_WIDTH, IMG_HEIGHT))
print(image.shape)
model.predict(image)

image.shape与模型在model.predict()行中读取的形状不一致
我运行这段代码,image.shape是(30,30,3),但当我预测图像时,它会引发一个错误,状态是“ValueError:层“sequential”的输入0与层不兼容:expected shape=(None,30,30,3),found shape=(None,30,3)”非常感谢任何帮助,因为我不知道为什么会发生这种情况

nbnkbykc

nbnkbykc1#

你需要使用tensorflow中的expand_dims函数:

import tensorflow as tf
from traffic import IMG_WIDTH, IMG_HEIGHT
import cv2
import os
import numpy as np

model = tf.keras.models.load_model("neural-network")
image = cv2.imread("gtsrb\\1\\00000_00000.ppm")
image = cv2.resize(image, (IMG_WIDTH, IMG_HEIGHT))

image = tf.convert_to_tensor(image, dtype=tf.float32)
image = tf.expand_dims(image , 0)

print(image.shape)
model.predict(image)

在将其转换为Tensor之前,如果尚未在RGB中,也可以使用此方法将其转换为RGB:

image = cv.cvtColor(image, cv.COLOR_BGR2RGB)

相关问题