- 18 7月, 2017 6 次提交
-
-
由 Yu Yang 提交于
-
由 Yu Yang 提交于
-
由 Yu Yang 提交于
* `in_out_idxs_` shares between all operator instance in same type of operator.
-
由 Yu Yang 提交于
Net::DebugString() print what it is and invokes inner operators DebugString() with a prefix '\t'.
-
由 Yu Yang 提交于
* There is a merge conflict when merge PR #2914 * Develop and PR #2914 both add `DDim::size` method, but did not triger git merge conflict while merge.
-
由 Qiao Longfei 提交于
-
- 17 7月, 2017 15 次提交
-
-
由 Yu Yang 提交于
Basically following http://pybind11.readthedocs.io/en/stable/advanced/pycpp/numpy.html * Use buffer protocol to return a view of Tensor. It can be cast to numpy array in Python. * Set a numpy array to a tensor.
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
-
由 Yu Yang 提交于
* Also fix unit test
-
由 qijun 提交于
-
由 Yan Chunwei 提交于
* add inputs * add ut for multiple inputs * fix AddToLayer * op_desc -> op_proto * CreateArgumentOffsetMap -> CreateInOutOffsetMap * move CreateInOutOffsetMap from OperatorBase to op registry * arg_idxs_ -> in_out_idxs_
-
由 Yu Yang 提交于
* Implement InferShape and register them, give a stub Kernel method by LOG(INFO)
-
由 qijun 提交于
-
由 Yu Yang 提交于
-
由 Qiao Longfei 提交于
-
由 Yan Chunwei 提交于
* add NDEBUG switch to PADDLE_ENFORCE
-
由 Yu Yang 提交于
-
由 fengjiayi 提交于
-
由 qijun 提交于
-
由 qijun 提交于
-
- 16 7月, 2017 4 次提交
-
-
由 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
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
1. Refactor DDim's product() to make it more efficiently. 2. Add slice_ddim().
-
由 Qiao Longfei 提交于
* add ADD_OP_CPU to enable add op with only cpu kernel
-
- 15 7月, 2017 6 次提交
-
-
由 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`.
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
-
由 liaogang 提交于
-
- 14 7月, 2017 9 次提交
-
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
-
由 fengjiayi 提交于
1. Add template T which indicates data type to `CopyFrom()`, `Slice()` and `ShareData()` functions. This makes `CopyData()` code much clearer. 2. Add `set_dim()`. 3. `product(DDim)` transforms `DDim` to `vector<int>` first and then calculate its product. That might be quite slow. For `product(dims_)` is frequently used in Tensor, we add a mumber variable `numel_` as a cache of the product result. TODO: refactor `product()` to make it more efficient. 4. Unable Tensor::operator= 5. Remove the limit of POD type, because `float16` and `int8` are not POD type.
-
由 fengjiayi 提交于
-
由 qijun 提交于
-
由 Qiao Longfei 提交于
* use OperatorPtr = std::shared_ptr<OperatorBase>; * use ScopePtr = std::share_ptr<Scope>;
-