1. 27 9月, 2017 1 次提交
    • Q
      Refactoring InferShape (#3946) · 9a9d50a6
      Qiao Longfei 提交于
      * init Infershape
      
      * add static InferShape interface
      
      * refactor add-op infershape
      
      * add AttrReader
      
      * add all maker's infershape
      
      * add all InferShape
      
      * add python infer api
      
      * add VarDesc interface
      
      * add python VarDesc and OpDesc interface
      
      * update python code
      
      * use infershape function to do shape inference
      
      * clean code
      
      * do not use pointer
      
      * refine code of op_proto_maker
      
      * add get_dims to VarDesc
      
      * refine the code
      
      * remove the dependency from operator to op registry
      
      * remove OpProtoAndCheckerMaker from operator
      
      * restore complete_add_op
      
      * add shape_infer_impl.h
      
      * code optimization
      
      * remove const return value
      
      * add fake BlockDesc class
      
      * optimize code
      
      * remove infer function in op_info
      
      * move InferShapeContextImpl to operator.h
      
      * optimize the interface of InferShapeContextBase
      
      * add temperary interface of new infershape
      
      * change add_op, clip_op, conv2d_op and activation_op
      
      * change all operators InferShape
      
      * fix SetDim
      
      * update cos_sim_op
      
      * update crop_op
      
      * update lookup_table_op
      
      * allocate tensor when call GetDim in InferShapeContext
      
      * update modified_huber_loss_op
      
      * update rowwise_add_op
      
      * update mean_op
      
      * update sequence_avg_pool_op
      
      * typo
      
      * remove old InferShape interface
      
      * can compile
      
      * fix or unit test
      
      * clean code
      
      * clean code
      
      * remove const before InferShapeContext
      
      * change InferenceContextBase to pointer
      
      * rename RunTime to Runtime, code clean
      9a9d50a6
  2. 07 9月, 2017 1 次提交
  3. 06 9月, 2017 2 次提交
  4. 16 8月, 2017 1 次提交
  5. 14 8月, 2017 3 次提交
  6. 12 8月, 2017 5 次提交
  7. 09 8月, 2017 2 次提交
  8. 08 8月, 2017 1 次提交
    • Y
      Make Compile Pass · dba618c0
      Yu Yang 提交于
      * Although backward_test/rnn_test is not pass, just comment them.
      dba618c0
  9. 01 8月, 2017 1 次提交
  10. 26 7月, 2017 1 次提交
  11. 25 7月, 2017 1 次提交
  12. 24 7月, 2017 1 次提交
    • Y
      Remove ScopePtr and OperatorPtr · c2543f5b
      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.
      c2543f5b
  13. 17 7月, 2017 1 次提交
  14. 15 7月, 2017 1 次提交
  15. 14 7月, 2017 2 次提交
    • Q
      Optimize ptr (#2851) · 58f3de95
      Qiao Longfei 提交于
      * use OperatorPtr = std::shared_ptr<OperatorBase>;
      * use ScopePtr = std::share_ptr<Scope>;
      58f3de95
    • Y
      Let OpProto support multiple and temporary (#2860) · 2462d0c5
      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)`.
      2462d0c5
  16. 13 7月, 2017 2 次提交
    • Y
      Follow comments · 79b70c2d
      Yu Yang 提交于
      * Convert `op` --> `operators`
      * Remove AddType in OpProtoMaker, because type is part of registry.
      * Rename CPU_OR_GPU --> DEVICE_TYPE in registry macro.
      79b70c2d
    • Y
      Add a sample op, `add_op` · a0aaafe9
      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.
      a0aaafe9
  17. 12 7月, 2017 3 次提交
    • Q
      test OpKernel (#2820) · be441f7d
      Qiao Longfei 提交于
      Add unit test for OpKernel
      be441f7d
    • Y
      Add OperatorWithKernel class · 0ff81920
      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.
      0ff81920
    • Q
      add operator base (#2725) · a2e5f652
      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.
      a2e5f652
  18. 11 7月, 2017 2 次提交
    • Y
      Move static variable defined in .cc (#2782) · 267f9a2c
      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
      267f9a2c
    • D
      "move opContext to DeviceContext" · bc021d77
      dongzhihong 提交于
      bc021d77
  19. 07 7月, 2017 1 次提交
    • F
      [draft] add registry for Op, OpProto and OpAttrChecker (#2739) · 1d2ef1db
      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
      1d2ef1db