* Add DataFeeder
A v2 API like data feeder for book demos.
We can feed data directly from reader.
* Fix CI
* Add an unittest for while/rnn op forward
* Add unittest for raw while op backward
* Fix CI
* is_training to is_test in dropout op
* handle dropout and batch_norm operator when prune pdesc in testing mode
* handle dropout and batch_norm operator when prune pdesc in testing mode
* add get_inference_program method
* fix dropout op
* fix ci
* test data after each batch training
* refine code
* refine test_book3
* fix ci
* follow comments
* first commit
* Python API for while op
* Python Unittest for simple while_op forward
* fix out to be list
* Fix UT
* VarType
* Fix several bugs
* Fix bug
* Fix bug
* Fix Bug
* Fix bug
* Fix unittest
* Remove debug log
* Add comments
* add PADDLE_ENFORCE
* while_grad_op first commit
* Add `BlockDescBind::FindRecursiveOrCreateVar()` and fix bugs
* not sure how to setdim of while outputs
* push for test
* add executor vlog
* fix bug of while_op cond
* Several enhancement for code
1. Backward always infer shape & infer var type. Since there are RENAME
variables will be created when creating backward operator, but their
shape & var types are not inferenced.
2. Never use SomePtr-> directly, since every pointer could be nullptr if
it is a function return value. Add `detail::Ref` to cast pointer to
reference safely.
3. Enhance error message for backward.
4. Infer data type of variable in `sum` and `tensor_write`
* Fix bugs of while_op gradient
* Fix several bugs of while_op grad
* fix fill zeros like
* fix 3 >= 3
* fix place holder shouldn't be null
* fail on sum op
* Fix SumOp of TensorList
* clean up
* pass while test
* fix test_array_write_read
* pass sum op
* Support int/int64 for fill_constant_batch_size_like
* Fix compile
* Add LoDRankTable
LoD Rank Table stores the `level` of `lod` which is ordered by sequence
length in descending order. It is useful when implement dynamic RNN and
is shared by dynamic RNN memory, dynamic RNN slice input and dynamic
RNN slice output operators.
* Add InferVarType
* Init commit
* Make executor use ProgramDescBind
* Change Attribute from BlockDesc to BlockDescBind
* Since we will get the program desc in RNN, just BlockDesc is not
enough.
* Add DeviceContext to Executor API
* Rewrite RNN
* Pass Python
* AddBiasOp does not care num_flatten_dims
* Stash
* Fix MacOS Compile
* Pass RNN forward
* add python test
* refactor test
* Make compile pass
* add gradopmaker
* First draft done
* Polish code
* add grad op maker and grad infershape
* Polish code
* Fix backward.cc bug
* Fix infershape
* Rename function
* add backward test
* simplify recurrent test
* Update
* Pass unittest
* Add comments & refine test
* Add comments
* refactor test
* Complete Unittest
* fix StepScopes enforce
* Remove unused unittest
* no type error
* Update
* Make RNN Pass unittest
* Init commit
* Make executor use ProgramDescBind
* Change Attribute from BlockDesc to BlockDescBind
* Since we will get the program desc in RNN, just BlockDesc is not
enough.
* add sparse support for sum op
* typo fix
* fix gpu build error
* fix unittest error
* typo fix
* infer var type and shape in op_test
* follow comments
* fix build error
* bypass some unittests depend on NetOp
* Implement FC layer with helper
* Update LayerHelper
* Add debug string for Python ProtoBuf
and Rename `Sync` to `Flush`
* Add check of ProtoBuf initialization
* Layer wrapper for FC
* Fix unittest
* Fix CI
* Add code generator
* AttributeChecker Better error log and speicalize bool
Since lots of types can be cast to bool
* Complete mlp, fit_a_line
* Expose get global scope
* Make global scope not thread-safe
1. It is no need to make global scope thread-safe, since it will be
invoked in Python main thread.
2. Do not free the global scope when C++ exit. Let the OS free memories,
otherwise, we need to handle the destroy dependencies.
See
https://google.github.io/styleguide/cppguide.html#Static_and_Global_Variables
* Fix
* Implementation of simple conv_2d layer
* Stash
* Remove private data members in OpRegister
* Fix bugs
* Stash
* Expose FeedFetchList as VarType
* Change ProgramDesc not a global variable
* Polish code style
* Stash
* Correct implement BlockDesc destructor
* Correct implement BlockDesc destructor
* Unify program as parameter name
* Fix bugs
* Add unittest
* Fix unit test error
* Remove unused functions
* Add clone for Python Program
* Working on executor
* Stash
* Add glog as dependencies of ops
* Use VLOG to logging some information is helpful when we debug Paddle
* Expose VarDesc::persistable to Python
* Test executor
* Complete unittest
* Polish code
* Fix merge error
* Follow comment
* Polish Python Code