1. 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
  2. 13 7月, 2017 4 次提交
  3. 12 7月, 2017 5 次提交
  4. 11 7月, 2017 7 次提交
    • F
      add more test · 0665dc97
      fengjiayi 提交于
      0665dc97
    • F
      Add several interfaces for Tensor class · ca39515e
      fengjiayi 提交于
      1. Add member variable 'DDim dims_' and a getter function 'dims()'.
      'dims' is supposed to hold tensor's shape during Op::InferShape.
      2. Remove 'mutable_data' which use default Place. User must specify a
      explicit Place when call 'mutable_data'.
      3. A PlaceHolder may be shared by more than one tensor, and some of them may be the others' slices. So we add a new member variable 'offset_' for Tensor, which is used to show the byte offset between PlaceHolder::ptr_ and where tensor's data really begins.
      4. Add functions 'ShareDataFrom' and 'Slice' for Tensor.
      
      TODO: Tensor needs a 'CopyFrom' function.
      ca39515e
    • 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
    • Y
      Simplelize framework/CMakeLists.txt (#2803) · abff52ab
      Yu Yang 提交于
      * generic.cmake can propogate dependencies through libraries. It is no
        need to specific all dependencies.
      abff52ab
    • D
      "switch to shared_ptr" · b871641a
      dongzhihong 提交于
      b871641a
    • D
      "support net_proto header" · 18e65b0c
      dongzhihong 提交于
      18e65b0c
    • D
      "move opContext to DeviceContext" · bc021d77
      dongzhihong 提交于
      bc021d77
  5. 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
  6. 06 7月, 2017 2 次提交
    • 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
    • S
      fix ci · 1264480b
      Superjom 提交于
      1264480b
  7. 05 7月, 2017 3 次提交
  8. 04 7月, 2017 9 次提交
  9. 03 7月, 2017 7 次提交