今天小编给大家分享一下Pytorch中的forward有哪些功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
我最开始发现forward()的与众不同之处就是在此,首先举个例子:
import torch.nn as nn class test(nn.Module): def __init__(self, input): super(test,self).__init__() self.input = input def forward(self,x): return self.input * x T = test(8) print(T(6)) # print(T.forward(6)) --------------------------运行结果------------------------- D:\Users\Lenovo\anaconda3\python.exe C:/Users/Lenovo/Desktop/DL/pythonProject/tt.py 48 Process finished with exit code 0
可以发现,T(6)是可以输出的!而且不用指定,默认了调用forward方法
。当然如果非要写上.forward()这也是可以正常运行的,和不写是一样的。
如果不调用Pytorch(正常的Python语法规则),这样肯定会报错的
# import torch.nn as nn #不再调用torch class test(): def __init__(self, input): self.input = input def forward(self,x): return self.input * x T = test(8) print(T.forward(6)) print("************************") print(T(6)) --------------------------运行结果------------------------- D:\Users\Lenovo\anaconda3\python.exe C:/Users/Lenovo/Desktop/DL/pythonProject/tt.py 48 ************************ Traceback (most recent call last): File "C:\Users\Lenovo\Desktop\DL\pythonProject\tt.py", line 77, in <module> print(T(6)) TypeError: 'test' object is not callable Process finished with exit code 1
这里会报:‘test’ object is not callable
因为class不能被直接调用,不知道你想调用哪个方法。
如果在class中再增加一个方法:
import torch.nn as nn class test(nn.Module): def __init__(self, input): super(test,self).__init__() self.input = input def byten(self): return self.input * 10 def forward(self,x): return self.input * x T = test(8) print(T(6)) print(T.byten()) --------------------------运行结果------------------------- D:\Users\Lenovo\anaconda3\python.exe C:/Users/Lenovo/Desktop/DL/pythonProject/tt.py 48 80 Process finished with exit code 0
可以见到,在class中有多个method的时候,如果不指定method,forward是会被优先执行的。
以上就是“Pytorch中的forward有哪些功能”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。