1. 18 1月, 2021 1 次提交
    • P
      Cherry-pick PR 30103. Add Inplace strategy (Output reuse Input Varbase) in... · 27c2f1ea
      pangyoki 提交于
      Cherry-pick PR 30103. Add Inplace strategy (Output reuse Input Varbase) in dygraph (#30103) (#30496)
      
      * 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
      27c2f1ea
  2. 29 12月, 2020 1 次提交
    • C
      [Cherry-pick] Complex network execute support (#29905) · 91ebc460
      Chen Weihang 提交于
      * [Complex] Add support for complex grad accumulated (#29889)
      
      * add support for complex grad accumulated
      
      * add unittest for coverage
      
      * update test dtype
      
      * remove useless blank line
      
      * [Complex] Handle complex to real after type promotion (#29855)
      
      * try to add fwd op input dtypes
      
      * refactor base impl
      
      * return tmp_ins after dygraph prepare data
      
      * fix typo found in debug
      
      * polish comment & add complex net test
      
      * revert detail change
      
      * fix unittest failed
      
      * add complex kernel condition control
      
      * fix xpu test failed & polish comment
      
      * polish details by review comments
      
      * Complex op test (#29753)
      
      * delete no need to calculate inputs in dygraph op_test
      
      * delete no need to calculate inputs in dygraph op_test
      
      * change grad elementwise_mul for complex types (#29757)
      
      * add conj op for complex types
      
      * add conj for complex types
      
      * add more test case
      
      * add conj_op test
      
      * modify conj api and impl
      
      * add complex type for fill_constant_op xpu
      
      * add setConstant for complex type
      
      * remove complex conj test file
      
      * user define grad for test_conj_op
      
      * add test case for static mode of conj api
      
      * modify conj doc
      
      * change input args name to x
      
      * remove useless codes
      
      * conj support real types
      
      * add conj test case for real number
      
      * delete no need to calculate inputs in dygraph op_test
      
      * delete no need to calculate inputs in dygraph op_test
      
      * modify grad of mul for complex types
      
      * fix the grads of inputs args order not match bug
      
      * change the grad of div when complex types (#29804)
      
      * change the grad of div when complex types
      
      * fix the grads of inputs args order not match bug
      Co-authored-by: Nchentianyu03 <chentianyu03@baidu.com>
      91ebc460
  3. 01 12月, 2020 1 次提交
  4. 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
  5. 18 11月, 2020 1 次提交
  6. 28 8月, 2020 2 次提交
  7. 24 7月, 2020 1 次提交
  8. 16 7月, 2020 1 次提交
    • H
      Add Support for SelectedRows for Transpose OP and Fix a Bug That SelectedRows... · d8fe517b
      Huihuang Zheng 提交于
      Add Support for SelectedRows for Transpose OP and Fix a Bug That SelectedRows Cannot be Supported in SimNet (#25536)
      
      This PR fixes a bug that SelectedRows cannot be supported in SimNet. The reason of this bug is that dygraph basic_engine didn't copy var's type when the var needs to be accumulated during backward. So when a var is SelectedRows and needs to be accumulated, like SimNet which calls net for two times, the var's type will be changed to default LoDTensor thus bug happens. To fix it, we just also copy the type.
      
      Without this PR, the accumulated SelectedRows parameters in dygraph will be changed into LoDTensor. So when we fixed the bug of supporting SelectedRows in SimNet, we found `test_imperative_lod_tensor_to_selected_rows` failed and threw the error that SelectedRows was not supported for Transpose OP. To fix it, too, this PR also added support for SelectedRows for Transpose OP.
      d8fe517b
  9. 06 4月, 2020 1 次提交
    • C
      Implement StaticModelRunner to support dygraph fine-tune static graph pre-training model (#23171) · 75bd3507
      Chen Weihang 提交于
      * static model runner basic implement, test=develop
      
      * add run program op to execute loaded program, test=develop
      
      * refactor static model runner & run program op, test=develop
      
      * reset engine.cc to resolve conflict
      
      * adapt the change of dygraph double grad, test=develop
      
      * refactor impl to solve control flow error, test=develop
      
      * clear debug code, test=develop
      
      * fix ci str compatible error & checkout dygraph grad maker & add example, test=develop
      
      * hide api & add op test, test=develop
      
      * fix run program op test places error, test=develop
      
      * fix program by review comment, test=develop
      
      * delete change var desc name, test=develop
      
      * fix other program by review comment, test=develop
      
      * remove _static_graph_guard, test=develop
      
      * add selectedrows test, test=develop
      
      * remove desc parser, test=develop
      
      * fix detail program, test=develop
      
      * change socpe create & add test, test=develop
      75bd3507
  10. 27 3月, 2020 1 次提交
    • Z
      Expose dygraph.grad api (#23124) · 8bfd62ff
      Zeng Jinle 提交于
      * expose dygraph.grad api, test=develop, test=document_fix
      
      * add more parameter in dygraph.grad API, test=develop
      
      * add only_inputs=True parameter, test=develop
      
      * follow comments, test=develop, test=document_fix
      
      * fix typo, test=develop, test=document_fix
      8bfd62ff
  11. 20 3月, 2020 1 次提交
    • Z
      Add dygraph double grad implementation (#22939) · a31d7328
      Zeng Jinle 提交于
      * add double grad implementation for dygraph, test=develop
      
      * polish code, add uts, test=develop
      
      * fix place bug, test=develop
      
      * polish codes, add more uts for coverages, test=develop
      
      * add no_grad_set, test=develop
      
      * add star gan ut, test=develop
      
      * follow comments, test=develop
      a31d7328