如何解决我在加载自定义训练的 .h5 模型时遇到错误,是因为版本问题还是其他原因?
#!/usr/bin/python
# -*- coding: utf-8 -*-
import tensorflow
from tensorflow.keras.models import load_model
from collections import deque
import numpy as np
import argparse
import pickle
import cv2
import urllib
model = load_model(r"E:\Wire_Detection\model_of_wire.h5",compile=False)
converter = tensorflow.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
# tensorflow.keras.models.load_model()
mean = np.array([123.68,116.779,103.939][::1],dtype='float32')
vs = cv2.VideoCapture(-1)
# vs.set(cv2.CV_CAP_PROP_FRAME_WIDTH,640)
# vs.set(cv2.CV_CAP_PROP_FRAME_HEIGHT,480)
writer = None
(W,H) = (None,None)
while True:
(grabbed,frame) = vs.read()
if not grabbed:
break
if W is None or H is None:
(H,W) = frame.shape[:2]
output = frame.copy()
frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
frame = cv2.resize(frame,(48,48)).astype('float32')
frame -= mean
preds = model.predict(np.expand_dims(frame,axis=0))[0]
if preds[0] == 1:
label = ''
elif preds[1] == 1:
label = 'Black Wire'
elif preds[2] == 1:
label = 'Red Wire'
text = 'Color Predicted: {}'.format(label)
cv2.putText(
output,text,(35,50),cv2.FONT_HERSHEY_SIMPLEX,1.25,(0,0xFF,0),5,)
if writer is None:
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
writer = cv2.VideoWriter('output',fourcc,30,(W,H),True)
writer.write(output)
cv2.imshow('Output',output)
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
print 'Thank you for using :)'
#writer.release()
vs.release()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。