- 01 8月, 2017 2 次提交
-
-
由 Yu Yang 提交于
* Make interface of Operator to `const Scope&`
-
由 Qiao Longfei 提交于
* use operator context * optimize code * update net infershape * update InferShape * disable override InferShape(scope) in OperatorBase * change InferShapeImpl to InferShape * add template to OperatorContext Input/Output * merge Input InputVar, Output OutputVar * change Inputs to MultiInput * fix conflict * fix MultiInput bugs and add unit test * rename KernelContext to ExecutionContext * clean code * change InferShape to protected * fix template bug * refine code * use InputVar instead of Input<Variable> * typo * optimize code
-
- 31 7月, 2017 1 次提交
-
-
由 Yi Wang 提交于
-
- 27 7月, 2017 1 次提交
-
-
由 Yu Yang 提交于
-
- 26 7月, 2017 1 次提交
-
-
由 qijun 提交于
-
- 24 7月, 2017 1 次提交
-
-
由 Yu Yang 提交于
* ScopePtr means pointer of scope, but it can be shared or uniqued. Change it to std::shared_ptr<Scope> to make code better to read.
-
- 19 7月, 2017 1 次提交
-
-
由 fengjiayi 提交于
We put forward Op's inputs, outputs and output gradients into Grad Op's inputs, and put forward Op's input gradients into Grad Op's output. So Grad Op's `in_out_idx`, `input_format` and 'output format' need to be rebuilt during Op creating.
-
- 18 7月, 2017 2 次提交
- 17 7月, 2017 4 次提交
-
-
由 qijun 提交于
-
由 Yan Chunwei 提交于
* add inputs * add ut for multiple inputs * fix AddToLayer * op_desc -> op_proto * CreateArgumentOffsetMap -> CreateInOutOffsetMap * move CreateInOutOffsetMap from OperatorBase to op registry * arg_idxs_ -> in_out_idxs_
-
由 qijun 提交于
-
由 qijun 提交于
-
- 16 7月, 2017 1 次提交
-
-
由 Qiao Longfei 提交于
* OperatorBase should not store OpDesc because not All op contains an OpDesc and not all ops create from OpDesc. * Networks do not contain OpDesc and are not created by OpDesc * Do not register Network to OpRegistry. * The network is directly created by the user in Python. Not from registry. * Correctly handle the `inputs` and `outputs` of a Network. * Add CompleteAddOp() methods * Remove `AddOp(OpDesc&)` in net-op. All op are added by OperatorPtr. * Rewrite unit test for truly tested what networks do. * optimise operator_test
-
- 15 7月, 2017 1 次提交
-
-
由 Yu Yang 提交于
All OpCreation method are generated by `create_op_creation_methods::__bootstrap__` method, and stores in `op_creations` object and its methods. There are three parts to implement this feature. 1. Get all registered `OpProto` from C++ side. It is implemented in `get_all_op_protos` method. 1. Create a function to convert `kwargs` to `OpDesc` base on each op's `OpProto`. The `OpDescCreationMethod` class. 1. Convert `OpProto` to `docstring` by `get_docstring_from_op_proto` method. All three methods are unit tested. The `__bootstrap__` just combines them together and create a method in runtime. For details, please reference the doc string in `create_op_creation_methods.py` and the unit test `test_op_creation_methods.py`.
-
- 14 7月, 2017 2 次提交
-
-
由 qijun 提交于
-
由 Qiao Longfei 提交于
* use OperatorPtr = std::shared_ptr<OperatorBase>; * use ScopePtr = std::share_ptr<Scope>;
-
- 13 7月, 2017 2 次提交
-
-
由 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.
-
由 Qiao Longfei 提交于
-
- 12 7月, 2017 2 次提交
-
-
由 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.
-