本文簡要介紹python語言中 torch.autograd.function.FunctionCtx.mark_dirty
的用法。
用法:
FunctionCtx.mark_dirty(*args)
將給定張量標記為在就地操作中修改。
這應該最多調用一次,隻能從內部調用
forward()
方法,所有參數都應該是輸入。每個在調用
forward()
時就地修改過的張量都應該提供給這個函數,以確保我們檢查的正確性。函數是在修改之前還是之後調用都沒有關係。- 例子::
>>> class Inplace(Function): >>> @staticmethod >>> def forward(ctx, x): >>> x_npy = x.numpy() # x_npy shares storage with x >>> x_npy += 1 >>> ctx.mark_dirty(x) >>> return x >>> >>> @staticmethod >>> @once_differentiable >>> def backward(ctx, grad_output): >>> return grad_output >>> >>> a = torch.tensor(1., requires_grad=True, dtype=torch.double).clone() >>> b = a * a >>> Inplace.apply(a) # This would lead to wrong gradients! >>> # but the engine would not know unless we mark_dirty >>> b.backward() # RuntimeError: one of the variables needed for gradient >>> # computation has been modified by an inplace operation
相關用法
- Python PyTorch FunctionCtx.mark_non_differentiable用法及代碼示例
- Python PyTorch FunctionCtx.set_materialize_grads用法及代碼示例
- Python PyTorch FunctionCtx.save_for_backward用法及代碼示例
- Python PyTorch Function用法及代碼示例
- Python PyTorch Future.then用法及代碼示例
- Python PyTorch Future.add_done_callback用法及代碼示例
- Python PyTorch Future.set_result用法及代碼示例
- Python PyTorch Future.set_exception用法及代碼示例
- Python PyTorch FloatFunctional用法及代碼示例
- Python PyTorch Forker用法及代碼示例
- Python PyTorch FMInteractionArch用法及代碼示例
- Python PyTorch FeatureAlphaDropout用法及代碼示例
- Python PyTorch FSSpecFileOpener用法及代碼示例
- Python PyTorch Filter用法及代碼示例
- Python PyTorch FSSpecSaver用法及代碼示例
- Python PyTorch FileLister用法及代碼示例
- Python PyTorch FisherSnedecor用法及代碼示例
- Python PyTorch FeaturePyramidNetwork用法及代碼示例
- Python PyTorch FactorizationMachine用法及代碼示例
- Python PyTorch FileStore用法及代碼示例
- Python PyTorch FractionalMaxPool3d用法及代碼示例
- Python PyTorch FiveCrop用法及代碼示例
- Python PyTorch FileOpener用法及代碼示例
- Python PyTorch FactorizationMachine.forward用法及代碼示例
- Python PyTorch FrequencyMasking用法及代碼示例
注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.autograd.function.FunctionCtx.mark_dirty。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。