1. 29 7月, 2017 1 次提交
    • Y
      RecurrentOp implementation (#2890) · aee0d3ec
      Yan Chunwei 提交于
      * add rnn op interfaces
      
      * add Run
      
      * rename state -> memory
      
      * change state -> memory
      
      * make compilable
      
      * add .cc
      
      * init test
      
      * add op fake implementation
      
      * add CreateStepNet and CreateScopes implementation.
      
      * add TODO list
      
      * init memory attributes.
      
      * add LinkMemories
      
      * add PlainNet fake implementation
      
      * Use std::shared_ptr<Scope> in the OpRunContext.
      
      * add test
      
      * disable mutable_data
      
      * finist segmentInput function
      
      * enable mutable_data with a trick
      
      * RNNOp test.
      
      * enable LinkMemories with mutable_data
      
      * update SegmentInput function with comments
      
      * finish ConcatOutput function
      
      * reformat inputs and attributes
      
      boot_memories
      
      * Refine unit test.
      
      * Refine unit test.
      
      * modify inlinks.
      
      * add OpDesc to Net
      
      * fix bug and update unit test.
      
      * move step scopes from inputs to outputs
      
      * fix merge conflict, update SegmentInput function
      
      * add RecurrentOpProtoAndCheckerMaker.
      
      * clean the codes
      
      * Abstract GetStepScopes and GetMaxSeqLen function
      
      * refine LinkMemories
      
      * Refine code and add some comments.
      
      * add backward core
      
      * update for develop branch.
      
      * add forward core
      
      * add forward algorithm
      
      * Add RecurrentGradientAlgorithm implenmention.
      
      * use CopyFrom and Slice function in RecurrentOp
      
      * add unit test for LinkMemories.
      
      * fix unit test.
      
      * use the latest tensor.h, solve conflict
      
      * add maker
      
      * move SegmentInput and ConcatOutput to details nameplace
      
      * unit test for RecurrentGradientAlgorithm.
      
      * apply OperatorBase
      
      * apply net operator.
      
      * move memorys to attributes
      
      * add RecurrentGradientOp
      
      * open test unit test in recurrent_network_op_test.
      
      * revert some files.
      
      * add RecurrentArgument and Link struct to simplify member variable.
      
      * rename.
      
      * move recurrent_op from framework to operators
      
      * add RecurrentGradientOp Init
      
      * fix name
      
      * fix Link.interal/external name
      
      * use namespace operators instead of framework
      
      * clean the code
      
      * use the latest add_op and mul_op, don't test backward now
      
      * Remove ScopePtr and OperatorPtr
      
      * add get_net to pybind
      
      * add test_recurrent_op.py
      
      * add random into gen_tensor
      
      * update to develop branch and refine some code.
      
      * add some comments.
      aee0d3ec
  2. 27 7月, 2017 1 次提交
  3. 25 7月, 2017 8 次提交
  4. 24 7月, 2017 4 次提交
  5. 21 7月, 2017 2 次提交
  6. 19 7月, 2017 4 次提交
    • Q
      Add sgd op (#2950) · e3b27d19
      Qiao Longfei 提交于
      * a simplest SGD op
      e3b27d19
    • Y
      Expose Net to Python · 0380bfb3
      Yu Yang 提交于
      * Expose PlainNet to Python, make python can add_op, complete_add_op
      * Provide a low level api to manipulate Net
      * Unittest for Net::DebugString
      0380bfb3
    • F
      Simplify Tensor implimentation · 55d30172
      fengjiayi 提交于
      ATTENTION: some interfaces changed:
      1. void Tensor::set_dims(const DDim& dims) ==> void Tensor::Resize(const DDim& dims).
      2. void Tensor::ShareDataFrom(const Tensor& src)  ==> void Tensor::ShareDataWith(const Tensor& src)
      3. DDim Tensor::dims() const ==> const DDim& Tensor::dims() const
      55d30172
    • Y
      Change Operator::create use py::bytes not std::string · 0a0b4caa
      Yu Yang 提交于
      0a0b4caa
  7. 18 7月, 2017 3 次提交
  8. 17 7月, 2017 2 次提交
  9. 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
  10. 14 7月, 2017 2 次提交
    • Y
      Get OpProtos in Python · a76f7ed2
      Yu Yang 提交于
      * PyBind and SWIG of paddle cannot be load in a single Python process,
        lazy import all SWIG library of Paddle. Otherwise, the glog, gflags
        are imported twice in a same Python process.
      * Note that all PyBind11 return C++ std::string as an unicode. For
        protobuf, it is need be cast to `str` before use them.
      * Add unit test for Get `OpProtos`
      a76f7ed2
    • Y
      Init commit · cd5113c1
      Yu Yang 提交于
      cd5113c1
  11. 12 7月, 2017 1 次提交
  12. 11 7月, 2017 1 次提交
    • Y
      Expose paddle.framework by pybind11 (#2793) · 27b196ba
      Yu Yang 提交于
      * Expose paddle.framework by pybind11
      
      * Export paddle.framework.{Scope, Variable} to paddle.v2.framework.core.
      * See python/paddle/v2/framework/tests/test_scope.py for Python usage
      * See paddle/pybind/pybind.cc for C++ bind code.
      
      * add copyright
      27b196ba