1. 18 7月, 2017 1 次提交
    • Y
      Make Tensor <--> Numpy interactive in tensor.h · a89c7ffa
      Yu Yang 提交于
      * Follow review comments to seperate Tensor Numpy interactive methods in
        tensor.h.
      * Simplify logic for `CastToPyBufferImpl`, make it as one struct and in
        details namespace.
      * Remove `Scope` expose in Python, since it currently is useless.
      * Remove some debug functions.
      a89c7ffa
  2. 17 7月, 2017 7 次提交
  3. 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
  4. 14 7月, 2017 5 次提交
  5. 11 7月, 2017 3 次提交
    • Y
      Default scope function · d027f47d
      Yu Yang 提交于
      `Paddle` manages Scope as programming language's scope.  It just a
      thread-local stack of Scope. Top of that stack is current scope, the
      bottom of that stack is all scopes' parent.
      
      Invoking `create_var/get_var`  can `create/get` variable in current
      scope. Invoking `enter_local_scope/leave_local_scope` can create or
      destroy local scope.
      
      A `scoped_function` will take a `function` as input. That function will
      be invoked in a new local scope.
      d027f47d
    • 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
    • Y
      Fix slow parsing a recursive depends topology · 313e9f55
      Yu Yang 提交于
      * Fix  #2797
      * It because trainer_config_helpers' __dfs_travel__ did not record the
        node which travelled, and if the topology has a recursive dependency,
        there are some nodes will be travelled multiple times.
      * Add a `travelled` set to record which node is travelled.
      * Also add a unittest for this situation.
      313e9f55
  6. 10 7月, 2017 1 次提交
  7. 07 7月, 2017 2 次提交
  8. 06 7月, 2017 3 次提交
    • C
      follow comment. · 075954c1
      caoying03 提交于
      075954c1
    • C
      enable error clipping in FC layer. · 20336428
      caoying03 提交于
      20336428
    • Y
      Generate python protobufs for paddle.v2.framework · e2ea1f42
      Yu Yang 提交于
      Python should be able to manipulate Protobuf message because:
      
      1. Python's `create_op_creation_methods` take the `OpProto` array to
         generate all `op_creation_methods` in RunTime.
      
      2. All `op_creation_methods` will create an `OpDesc` and pass it to
         Paddle C++ method `CreateOp` and return the Op handle.
      
      Here is the list of what is added in this commit:
      
      * Add `protobuf_generate_python` if it is not defined.
        * Before cmake 3.4, `protobuf_generate_python` is not defined. Just
          copy the implementation of that function in `protobuf.cmake`
      * Add `py_proto_compile` function in `cmake/generic.cmake`.
        * It follows bazel's API interface.
          * https://github.com/pubref/rules_protobuf#rules
      * Add an empty package named `paddle.v2.framework`, all python code of
        `paddle::framework` will be in that package.
      * Generate protobuf's python module `__init__.py` by `touch` while
        compiling.
      * Change setup.py.in, make `paddle.v2.framework.proto` uses the
        generated protobuf pythons.
      e2ea1f42
  9. 05 7月, 2017 1 次提交
  10. 04 7月, 2017 2 次提交
  11. 03 7月, 2017 3 次提交
  12. 30 6月, 2017 5 次提交
  13. 29 6月, 2017 6 次提交