想确认这是模型的问题还是我做错了tflite



有人联系我,因为他们想要tflite模型的末尾!当我真正创建一个前端时,它预测一切都是正的,准确率为99.9%!只是想知道是我的错还是模型不正确!

这是我用于预测的代码:

model = tf.lite.Interpreter(model_path='Classifier\trained_models\model.tflite')
def predict(imgUrl , model=model):
interpreter = model
interpreter.allocate_tensors()

output = interpreter.get_output_details()[0]  # Model has single output.
input = interpreter.get_input_details()[0] 

img = image.load_img(imgUrl, target_size=(227, 227))
img = image.img_to_array(img)
img /= 255
interpreter.set_tensor(input['index'], [img])
interpreter.invoke()
output_data = interpreter.get_tensor(output['index'])
output_probs = tf.math.softmax(output_data)
pred_label = tf.math.argmax(output_probs)

print(output_probs)
# classes = model.predict(images)
encode_label = np.argmax(output_probs,axis=-1)
print(encode_label)
print(pred_label)
print(output_data)

lb = {0:'Normal', 1:'Head and Neck Cancer'}

chances = str(max(output_data.flatten().tolist())*100)[:4] + '%'
print(chances)
encoded = str(lb[encode_label[0]])
print(output_probs)
print(encoded)

编辑[1]

预处理

train_ds = tf.keras.utils.image_dataset_from_directory(
"/content/drive/MyDrive/FYP DATA",
validation_split=0.1,
subset="training",
seed=123,
image_size=(227, 227),
batch_size=32)
val_ds = tf.keras.utils.image_dataset_from_directory(
"/content/drive/MyDrive/FYP DATA",
validation_split=0.1,
subset="validation",
seed=1,
image_size=(227, 227),
batch_size=32)

我终于解决了这个问题。事实上,在训练模型时,数据没有经过预处理,但在进行预测时,我正在对数据进行预处理!因此,我刚刚从预测函数中删除了以下行:

img /= 255

最新更新