叫我小唐就好了 2022-06-15 13:28 采纳率: 100%
浏览 52
已结题

python 调用自己的跑出来的H5模型无法调用预测

在主函数上我待用整体是可以跑的

img

主函数部分代码

#分离数据集 训练和验证 以及类名
#初始化mobilenetv2模型
def get_MOBILENT_model(IMG_SHAPE=(224, 224, 3), class_num=245):
    # 微调的过程中不需要进行归一化的处理
    base_model = tf.keras.applications.MobileNetV2(input_shape=IMG_SHAPE,
                                                   include_top=False,
                                                   weights='imagenet')  # 加载mobilenetv2模型
    base_model.trainable = False  # 将主干的特征提取网络参数进行冻结
    model = tf.keras.models.Sequential([
        tf.keras.layers.experimental.preprocessing.Rescaling(1. / 127.5, offset=-1, input_shape=IMG_SHAPE),
        # 归一化处理,将像素值处理为-1到1之间
        base_model,
        tf.keras.layers.GlobalAveragePooling2D(),  # 全局平均池化
        tf.keras.layers.Dense(class_num, activation='softmax'),  # 设置最后的全连接层,用于分类
    ])
    model.summary()  # 输出模型信息
    # 模型训练
    model.compile(optimizer='adam', loss='categorical_crossentropy',metrics=['accuracy'])  # 用于编译模型,指定模型的优化器是adam优化器,模型的损失函数是交叉熵损失函数
    return model  # 返回模型
def train_test_split(date_dir,height_size,width_size, batch_size):
    train_ds = tf.keras.preprocessing.image_dataset_from_directory(
        #文件目录
        date_dir,
        #标签将被编码为分类向量
        label_mode='categorical',
        # 划分比例
        validation_split=0.2,  # 划分比例
        # 训练集
        subset="training",
        seed=123,
        image_size=(height_size, width_size),
        # 批次大小
        batch_size=batch_size)
    val_ds = tf.keras.preprocessing.image_dataset_from_directory(
        date_dir,
        label_mode='categorical',
        # 划分比例
        validation_split=0.2,
        # 验证集
        subset="validation",
        seed=123,
        image_size=(height_size, width_size),
        #批次大小
        batch_size=batch_size)
    class_names = train_ds.class_names  # 获取数据集的类名
    return train_ds, val_ds, class_names  # 返回训练集、验证集和类名
def test(Date_dir,H5_name):
    train_ds, val_ds, class_names = train_test_split(Date_dir, 224, 224, 4)
    model = tf.keras.models.load_model(H5_name)
    model.summary()
    # loss, accuracy = model.evaluate(val_ds)
    # print('test accuracy :', accuracy)
    pre=model.predict(val_ds)
    print(len(pre[0]))

但是测试单张图片的时候不可以

img_path=r"D:\python Rubbish\rubbish data\images\img_4.jpg"
model = load_model("D:\python Rubbish\mobilent.h5")
model.summary()
img=image.load_img(img_path,target_size=(224,224))
img_tensor = image.img_to_array(img)
img_tensor/=127.5
print('该图像的尺寸为:',img_tensor.shape)
#之前模型设立了偏移
img_tensor=img_tensor-1
print(img_tensor)
img_tensor=np.expand_dims(img_tensor,axis=0)
prediction=model.predict(img_tensor)
print(prediction)

img

img

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2022-06-20 09:51
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    评论

报告相同问题?

问题事件

  • 系统已结题 6月23日
  • 创建了问题 6月15日

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名