Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle
  • Issue
  • #3996

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看板
已关闭
开放中
Opened 9月 11, 2017 by saxon_zh@saxon_zhGuest

Operators 输入输出在OpProtoMaker 类中如何命名

Created by: lcy-seso

为了解决此 issue 中提出的问题:https://github.com/PaddlePaddle/Paddle/issues/3899 这里先汇总一些大家的讨论意见。

关于命名

  1. 单输入单输出激活和纯数学运算,统一改成X,Y。
    • 目前代码中已经命名为Out的,统一重命名为Y。
    • 避免组合 Op 出现硬编码判断名字。
    • 这里最好可以整理出一个表格,供大家速查。
  2. 复杂Op,CRF,NCE,图像操作,输入本身有固定名字的,使用有意义的名字。
  3. 一个字母的名字大写,多余一个字母的小写。
  4. 损失函数的输出命名为 loss,ground-truth 命名为 label。

命名引起的问题

  1. 按照目前创建 Op 的方式,如果ProtoMaker中输入输出名不统一,会导致组合 Op 的编写可能由于输入Op 命名风格不统一,出现 if-else 硬编码处理命名。
  2. 未来新加入一个op,却因为名字风格比较特殊(在合理范围内),导致之前的写过的组合op潜在出问题,也非常容易出bug。考虑到, Op由不同开发者开发,很难注意到别人编写的Op也需要修改。若单测未覆盖到会非常危险。
  3. 应该给一个Op可以包含的Op加一个约束。
  • 一种解决方案:

    XXX_OP(
        input=[
            ["input1_a", "input1_b"],
            [...]
        ],
        output=[
            ["output1"],
            ["output2"]
        ]
    )
    • 在C++或者在Python端,都加上一个wrapper,用数组中的顺序来表明是哪个输入或输出。
    • 自动生成代码。现在的op方法都在cpp里边,自动生成一个比较好的python Operator代码,用户可以通过查看python源代码来了解参数列表的情况。
指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: paddlepaddle/Paddle#3996
渝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