1. 19 7月, 2017 2 次提交
    • F
      rename a macro · 94a6b1fa
      fengjiayi 提交于
      94a6b1fa
    • F
      Refactor Rigistry::CreateGradOp() · bf4da3d9
      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.
      bf4da3d9
  2. 18 7月, 2017 12 次提交
  3. 17 7月, 2017 20 次提交
  4. 16 7月, 2017 5 次提交
    • Q
      change net to operator (#2846) · 45ce1649
      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
      45ce1649
    • F
      formate code · 7de10ee7
      fengjiayi 提交于
      7de10ee7
    • F
      Refactor DDim's product() and add slice_ddim() · 85c4f488
      fengjiayi 提交于
      1. Refactor DDim's product() to make it more efficiently.
      
      2. Add slice_ddim().
      85c4f488
    • Q
      add ADD_OP_CPU to enable add op with only cpu kernel (#2896) · afa99d9a
      Qiao Longfei 提交于
      * add ADD_OP_CPU to enable add op with only cpu kernel
      afa99d9a
    • Y
      CMake `op_library` function · d3a749a5
      Yu Yang 提交于
      * It is used to create an operator library. It handles to split CPU and
        GPU sources and links operator common libraries.
      * It also give a reasonable warning and error when operator developer
        not correctly implement an operator.
        * Warning for lack of GPU kernel.
      * Same interface as `cc_library` to make code style consistent.
      d3a749a5
  5. 15 7月, 2017 1 次提交
    • Y
      Python Generate OpCreation Methods by OpProto · 9e0c6800
      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`.
      9e0c6800