1. 19 3月, 2022 1 次提交
    • P
      support inplace in dygraph eager_fluid state (#40400) · 8e612903
      pangyoki 提交于
      * [Eager] Support eager grad interface, draft version
      
      * Support eager grad interface with allow_unused and multi startup_op
      
      * Fix code format
      
      * Fix allow_unused case, return PyNone if tensor not initialize
      
      * Support output's stop_gradient related to create_graph
      
      * Support grad exception case in eager mode, fix coverage CI
      
      * Update ToPyObject, return PyNone if not initialize
      
      * AccumulationNode add FLAGS_retain_grad_for_all_tensor
      
      * Fix ci issue
      
      * Fix CI issue
      
      * fix, use core.eager.Tensor
      
      * Add func SetBufferSlotRankZeros for GradTensorHolder
      
      * Support retain_graph by using ClearTensorWrappers
      
      * Support retain_graph by using ClearTensorWrappers
      
      * Update retain_graph and no_grad_vars related test case
      
      * Update code gen logic for ClearTensorWrappers
      
      * Fix by override statement
      
      * fix override func args
      
      * Support retain_graph, update unit tests
      
      * Updated ClearTensorWrappers logic
      
      * fix grad python interface
      
      * Use deep copy and update unit tests
      
      * Polish code
      
      * Polish code
      
      * Fix CI issue, Deep copy only use when user set grad_tensors
      
      * Fix CI, use Backward instead RunBackward
      
      * Fix CI, Declare kernel explicitly in test file
      
      * Polish, remove vector of TensorWrapper
      
      * Refactor the logic of grad/backward, polish codes
      
      * Update code after merge upstream develop
      
      * Polish after merge upstream develop
      
      * Update to adapt new GradNodeBase superclass
      
      * Fix error introduced during conflict resolution
      
      * support inplace strategy in eager_fluid state
      
      * solve conflict
      
      * nothing
      
      * Update purify potential_startup_nodes logic
      
      * Fix errors
      
      * Polish code
      
      * Remove useless args for ToPyObject
      
      * Remove useless TensorWrappersSet
      
      * fix record conflict
      
      * Fix code-format, re-install pre-commit
      
      * fix tensor_wrapper bug
      
      * Fix pre-process logic for potential_startup_ops
      
      * Update unit tests, use eager mode
      
      * Fix conflicts
      
      * fix unittest timeout
      
      * little change
      Co-authored-by: NWeilong Wu <veyron_wu@163.com>
      8e612903
  2. 27 12月, 2021 1 次提交
  3. 23 11月, 2021 1 次提交
  4. 30 4月, 2021 1 次提交
    • P
      Add 12 inplace APIs including auto generated (#32573) · 308073de
      pangyoki 提交于
      * add relu6_ hardsigmoid_ leaky_relu_ Inplace APIs
      
      * add softmax_with_cross_entropy_ Inplace API
      
      * add clip_ scale_ add_ subtract_ Inplace APIs
      
      * add wlist
      
      * fix parameter of scale api
      
      * add add_n_ Inplace API and remove log_ Inplace API
      
      * fix elementwise_add_ and elementwise_sub_ broadcast problem
      
      * elementwise inplace api give error message before run the op
      
      * use broadcast_shape in elementwise inplace op
      
      * add 8 inplace apis that is auto generated
      
      * add unittest for all inplace apis
      
      * add decorator for inplace apis in static mode
      
      * fix windows blas fail of exp inplace api, change array_equal to allclose
      
      * add flatten inplace api
      
      * add flatten unittest
      
      * fix flatten unittest
      
      * add decorator
      
      * fix grad.numpy in test_pylayer_op
      
      * unsupport softmax_with_cross_entropy_
      
      * add test_inplace_softmax_with_cross_entropy to static_mode_white_list
      
      * delete __all__ in inplace_utils
      
      * delete activation inplace function and add Tensor.inplace_func
      
      * change paddle.inplace_ to Tensor.inplace_
      
      * fix little problem
      
      * add paddle in inplace_utils
      308073de
  5. 26 4月, 2021 1 次提交
  6. 15 1月, 2021 1 次提交
    • P
      Add Inplace strategy (Output reuse Input Varbase) in dygraph (#30103) · 13d75736
      pangyoki 提交于
      * add view strategy on squeeze,unsqueeze,reshape,flatten
      
      * add squeeze unittest
      
      * add unittests
      
      * use View strategy as name rather than Reuse Allacation
      
      * fix view api doc
      
      * fix format
      
      * use core.ops when input of reshape2 is Tensor
      
      * fix test_cross_entropy_loss error because of reshape2
      
      * fix test_cross_entropy_loss error because of reshape2
      
      * add inplace strategy
      
      * add elementwise_add sub
      
      * let backward op not use inplace
      
      * grad op do not use inplace
      
      * fix memory increase error and add leaf error message
      
      * delete selected_rows
      
      * change op_function
      
      * little change
      
      * solve HandleViewBetweenInputAndOutput
      
      * add unittest and leaf error message
      
      * merge view error
      
      * optimize op_function_generator format and support sum inplace op
      
      * fix format of basic_engine
      
      * fix format for framework
      
      * little change of variable wrapper
      
      * add reshape, squeeze, unsqueeze, scatter api
      
      * add relu elu tanh softmax inplace api
      
      * fix test_squeeze_op unittest
      
      * fix test_relu_op unittest
      
      * fix comment problems
      
      * delete sample code of inplace api
      
      * add reference of grad_pending_nodes in basic_engine
      
      * fix unittest name
      
      * add inplace apis into wlist
      
      * fix error message
      
      * add PADDLE_ENFORCE for set grad op twice
      
      * fix head file error
      13d75736
  7. 11 1月, 2021 1 次提交
  8. 30 11月, 2020 1 次提交
    • L
      Check whether there is any inplace operation affecting gradient calculation. (#27901) · 865a4598
      liym27 提交于
      * Add a class TensorInplaceVersion to count the inplace version and put it in framework::Tensor instead of Allocation or Variable.
      
      * Add a new attribute `_inplace_version` for VarBase.
      
      * Raise exception if an inplace operation can result in incorrect gradient computation.
      
      * Add a new interface _bump_inplace_version() for VarBase to bump the version whenever the Tensor is modified through an inplace operation.
      
      * For api assign, call _bump_inplace_version() when it's an inplace operation inn dynamic mode.
      
      * Use original var_wrapper if the inplace_version is not changed.
      
      * Replace SnapshotVarWrapperList with SnapshotVarWrapper to optimize performane.
      865a4598