- 17 7月, 2017 1 次提交
-
-
由 Qiao Longfei 提交于
-
- 14 7月, 2017 2 次提交
-
-
由 Qiao Longfei 提交于
* use OperatorPtr = std::shared_ptr<OperatorBase>; * use ScopePtr = std::share_ptr<Scope>;
-
由 Yu Yang 提交于
* Let OpProto support multiple and temporary * Each input/output of Paddle's Op could be a list. Add multiple mark to OpProto. Also add a `input_format`/`output_format` attribute if that Op has multiple input or output. The format of that attribute please reference the comments in `op_proto.proto` * Add temporary mark, because some output of an Op is not used by user but used by other op for faster computation. Explicitly mark which output is temporary could let future memory/computation optimization. * Add generated field to AttrProto. * Add `AddInputs`/`AddOutputs` function * It is more readable to invoke `AddInputs` not `AddInput(multiple=true)`.
-
- 13 7月, 2017 2 次提交
-
-
由 Yu Yang 提交于
* Convert `op` --> `operators` * Remove AddType in OpProtoMaker, because type is part of registry. * Rename CPU_OR_GPU --> DEVICE_TYPE in registry macro.
-
由 Yu Yang 提交于
* Refine register methods, make Op can get rid of whole-archieve * `USE_OP` before a op is used. * Add unittest for add_op.
-
- 12 7月, 2017 3 次提交
-
-
由 Qiao Longfei 提交于
Add unit test for OpKernel
-
由 Yu Yang 提交于
* User can register OpKernel to its Ops. The OpKernelMap saved in OperatorWithKernel. Each Op which inherits OperatorWithKernel will use `OpKernel::Compute` instead of Run.
-
由 Qiao Longfei 提交于
Add OperatorBase. issue: https://github.com/PaddlePaddle/Paddle/issues/2790 Paddle design the Operator with Kernel. OperatorBase has no type and device information when create, One operator can have multiple kernels, Operator will choose a kernel to run according to context. The kernel should be bind to Operator before or during Operator running.
-
- 11 7月, 2017 2 次提交
-
-
由 Yu Yang 提交于
* Move static variable defined in .cc We cannot define static variable in .h, because it will be multi-defined errors. Also fix some cpp syntax, like: * Prefer to use algorithm not manually for-loop, to make code more readable. * Remove unused `()`. * Enforce take a bool. It is no need `xxx==true`. * Use range-based for-loop iterator from op_desc.attrs * Fix a protential static variable init order error
-
由 dongzhihong 提交于
-
- 07 7月, 2017 1 次提交
-
-
由 fengjiayi 提交于
* init op_registry.h * dev op_registry.h * add 'attr_checker.h', which is a draft of op attribute checker. * rename some macro parameters * 1. Use `Attribute` and `AttributeMap` instead of `OpDesc`. `AttributeMap` is a unordered_map of <string, Attribute>, and `Attribute` is a boost::variant object to hold multiple types of attribute value. 2. Use `PADDLE_ENFORCE` to print checkers' fail message. 3. Abstract default value operations to a new function: `DefaultChecker`. * rename DefaultChecker to DefaultValueSetter ZZ * Finish op_registry 1. Complete the development of interfaces between OpRegistry and Protobuf. 2. Add unit test for op_registry.h * Add demo and test of custome checker * fix merge conflict
-