lbz_py 2023-11-23 20:31 采纳率: 0%
浏览 5

分类模型传入数据报错

训练一个特征点集, 输入是np.array(2, 21, 3)
炼完之后输入TensorSpec(shape=(2, 21, 3), dtype=tf.float32, name='dense_input')数据,
但是爆以下错误

ValueError: Could not find matching concrete function to call loaded from the SavedModel. Got:
  Positional arguments (3 total):
    * <tf.Tensor 'dense_input:0' shape=(2, 21, 3) dtype=float32>
    * False
    * None
  Keyword arguments: {}

 Expected these arguments to match one of the following 2 option(s):

Option 1:
  Positional arguments (3 total):
    * TensorSpec(shape=(None, 2, 21, 3), dtype=tf.float32, name='dense_input')
    * True
    * None
  Keyword arguments: {}

之前怀疑是类型的问题,尝试了constant等函数类型转变
如何怀疑是维度问题, 于是增添维度到(1, 2, 21, 3)数据,但是均失败

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-23 22:08
    关注

    【以下回答由 GPT 生成】

    这个问题是由于模型期望接收的输入形状与传入的数据形状不匹配导致的。通过报错信息可以看出,模型期望接收的输入形状是(None, 2, 21, 3),但传入的数据形状是(2, 21, 3)。解决这个问题的方法是将输入的数据形状调整为符合模型期望的形状。

    可以使用NumPy提供的expand_dims函数来给数据增加一个维度。然后再将数据传入模型进行预测。下面是解决问题的代码示例:

    import numpy as np
    
    # 输入数据
    data = np.array([
        [[1, 2, 3], [4, 5, 6], ...],
        [[7, 8, 9], [10, 11, 12], ...]
    ])
    
    # 在第0个维度上增加一个维度
    expanded_data = np.expand_dims(data, axis=0)
    
    # 将新增的维度传入模型进行预测
    prediction = model.predict(expanded_data)
    

    在这个示例中,np.expand_dims(data, axis=0)将数据data在第0个维度上增加了一个维度,从(2, 21, 3)变成了(1, 2, 21, 3)。然后将增加维度后的数据expanded_data传入模型进行预测。

    以上就是解决这个问题的具体步骤。如果有任何问题,请随时提问。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月23日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表