Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle
  • 合并请求
  • !23542

P
Paddle
  • 项目概览

PaddlePaddle / Paddle
大约 2 年 前同步成功

通知 2325
Star 20933
Fork 5424
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 1423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 1,423
    • Issue 1,423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
    • 合并请求 543
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板

Op(fetch) error message enhancement. !23542

  • Report abuse
!23542 已合并 4月 07, 2020 由 saxon_zh@saxon_zh 创建
#<User:0x00007f7ea86028a8>
  • 概览 3
  • 提交 2
  • 变更 1

Created by: Xreki

fetch_op报错信息增强 [仅C++端]

1. 使用OP_INOUT_CHECK,增加输入、输出是否设置的检查

由于fetch_op继承的是OperatorBase,当输入或者输出没有设置时,在进入RunImpl函数之前就会报错,因此修改前后报错信息一样,具体如下:

  • 没有设置输入

    Error: Operator fetch's input, X, is not set at (/paddle/paddle/fluid/framework/operator.cc:382)
  • 没有设置输出

    Error: Operator fetch's output, Out, is not set at (/paddle/paddle/fluid/framework/operator.cc:390)

2. 增强scope中,输入、输出变量是否存在的检查

  • 检查scope中输入变量是否存在
    • 修改前
    Error: Cannot find fetch variable in scope, fetch_var_name is in_0 at (/paddle/paddle/fluid/operators/controlflow/fetch_op.cc:38)
      [operator < fetch > error]
    • 修改后
    NotFoundError: Input variable(in_0) cannot be found in scope for operator 'Fetch'.
      [Hint: fetch_var should not be null.] at (/paddle/paddle/fluid/operators/controlflow/fetch_op.cc:43)
      [operator < fetch > error]
  • 检查scope中输出变量是否存在
    • 修改前
    Error: Cannot find out_var in scope, out_var_name is fetch at (/paddle/paddle/fluid/operators/controlflow/fetch_op.cc:44)
    [operator < fetch > error]
    • 修改后
    NotFoundError: Output variable(fetch) cannot be found in scope for operator 'Fetch'.
      [Hint: out_var should not be null.] at (/paddle/paddle/fluid/operators/controlflow/fetch_op.cc:50)
      [operator < fetch > error]
  1. 增加属性col >= 0的检查
    • 修改前
    W0408 05:43:54.087884 59585 operator.cc:187] fetch raises an exception std::out_of_range, vector::_M_range_check
    • 修改后
    InvalidArgumentError: Expected the column index (the attribute 'col' of operator 'Fetch') of current fetching variable to be no less than 0. But received column index = -1.
      [Hint: Expected col >= 0, but received col:-1 < 0:0.] at (/paddle/paddle/fluid/operators/controlflow/fetch_op.cc:59)
      [operator < fetch > error]

说明

fetch op不是普通op,使用executor执行时,由executor根据用户的fetch需求自动插入fetch_op来取回计算的结果数据。没有Python API,错误示例难以构造,因此不提供错误示例。

指派人
分配到
审核者
Request review from
无
里程碑
无
分配里程碑
工时统计
标识: paddlepaddle/Paddle!23542
Source branch: github/fork/Xreki/error/fetch
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7