Java中torch.tensor的乘法操作和原地inplace乘法操作举例分析

本篇内容介绍了“Java中torch.tensor的乘法操作和原地inplace乘法操作举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

x=x*2和x*=2是不同的,后者PyTorch认为是inplace原地操作.
代码实验举例:

Microsoft Windows [版本 10.0.18363.1256](c) 2019 Microsoft Corporation。保留所有权利。

C:\Users\chenxuqi>conda activate ssd4pytorch2_2_0(ssd4pytorch2_2_0) C:\Users\chenxuqi>python
Python 3.7.7 (default, May  6 2020, 11:45:54) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.>>> import torch>>> x = torch.tensor([2., 2., 2., 2.], requires_grad=True)>>> x = x*2>>>>>> y = torch.tensor([2., 2., 2., 2.], requires_grad=True)>>> y *= 2Traceback (most recent call last):
  File "<stdin>", line 1, in <module>RuntimeError: a leaf Variable that requires grad has been used in an in-place operation.>>>>>>>>> xx = torch.tensor([2., 2., 2., 2.], requires_grad=False)>>> xx = xx * 2>>>>>> yy = torch.tensor([2., 2., 2., 2.], requires_grad=False)>>> yy *= 2>>>>>>>>>

“Java中torch.tensor的乘法操作和原地inplace乘法操作举例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!