请教下机器学习PAI,我一个模型在eas部署好了但在线调用eas的时候报错?[阿里云机器学习PAI]

请教下机器学习PAI,我一个模型在eas部署好了,然后离线predict也是ok的,但在线调用eas的时候报错,帮忙看下是什么原因呢?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. init_cate1_seq 这个特征感觉有问题,似乎是你训练时输入的格式,和在线调用的格式不一致,可以检查一下看看
    你在 easyrec config 配置了 tag feature 和 kv_separator ,这个一定要按照格式来才行,具体源代码参考:https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/input/input.py#L414 ,不能有空缺。作为对比,你可以拿你训练时正常的一条数据请求一下,然后和出错的对比,应该是这个 weights 数据没有和这个 tag 一致:https://www.www.tongchenyun.com/wp-content/uploads/aliyun/2023/1128/feature.html](https://www.www.tongchenyun.com/wp-content/uploads/aliyun/2023/1128/wyvq5mjsckydw_b9702b4ea43049f584d94237a0e167d3.png)
    ,此回答整理自钉群“【EasyRec】推荐算法交流群”

  2. 在模型加载时张量的形状不匹配。具体来说,是在进行 reshape 操作时,输入的张量有 144 个值,但 reshape 操作期望的形状是 8。
    要解决这个问题,您需要检查模型结构和配置,确保在加载模型时,输入的张量形状与模型期望的形状一致。您可以尝试以下方法:

    1. 检查模型代码,确保在定义模型时,相关张量的形状设置正确。
    2. 检查输入数据的形状,确保它与模型期望的形状匹配。如果需要,您可以对输入数据进行形状调整。
    3. 如果您使用的是 TensorFlow 或 TensorFlow Serving,可以尝试调整模型的输入和输出协议缓冲区,以便在不同设备上运行时能够自动调整形状。这通常可以通过在模型代码中添加适当的协议缓冲区字段和注释来实现。