Skip to content

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

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看板

Feature/add attribute proto !758

  • Report abuse
!758 已关闭 12月 07, 2016 由 saxon_zh@saxon_zh 创建
#<User:0x00007ff7d2a9a700>
  • 概览 2
  • 提交 3
  • 变更 10

Created by: reyoung

添加protobuf Attribute。

基本用法

简化Protobuf

我们之后写的Layer和DataProvider的参数,都可以用这个Attribute来统一。这样,我们新写Layer就不用改Protobuf了。

Protobuf3兼容性

如果我们所有的Attribute都是用这种机制写的,那么(未来)升级Protobuf3的时候,就会非常简单。只需要写一个新的AttributeWriter和AttributeReader就好了。

进阶用法

我们可以在每个Layer的cpp里面,定义一些Attribute,比如这个Layer输入的类型是什么,支持的参数类型有什么。然后序列化到protobuf中。

config_parser部分的python文件,直接读取这个序列化的proto,动态(运行时)生成layer function。这样我们添加新Layer,就只需要改Cpp了。

这个patch

做了什么

这个Patch只添加了Attribute这个类,并且用PyDataProvider2做了实验,证明这个机制可以跑通。

可能有的问题

  • 这样的Attribute不支持Default Value。不过protobuf3里面也不支持default value。
  • 这样读取Attribute的时候,会有一次O(n)的线性查找
    • 升级到protobuf3,可以改成map
    • 即使在protobuf2,这种attribute的读取工作并不常见,应该不会是性能瓶颈。
指派人
分配到
审核者
Request review from
无
里程碑
无
分配里程碑
工时统计
标识: paddlepaddle/Paddle!758
Source branch: github/fork/reyoung/feature/add_attribute_proto
渝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