Pytorch中的forward有哪些功能
今天小编给大家分享一下Pytorch中的forward有哪些功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
forward有什么特殊功能?
第一条:.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:UsersLenovoanaconda3python.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:UsersLenovoanaconda3python.exe C:/Users/Lenovo/Desktop/DL/pythonProject/tt.py
48
************************
Traceback (most recent call last):
File "C:UsersLenovoDesktopDLpythonProject t.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不能被直接调用,不知道你想调用哪个方法。
第二条:优先运行forward方法
如果在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:UsersLenovoanaconda3python.exe C:/Users/Lenovo/Desktop/DL/pythonProject/tt.py
48
80
Process finished with exit code 0
可以见到,在class中有多个method的时候,如果不指定method,forward是会被优先执行的。
相关内容
这些是最新的
热门排行
- THINKPHP5+GatewayWorker+Workerman 开发在线客服系统
- 在手机浏览器网页中点击链接跳转到微信界面的方法
- 尊云网站目录系统 ThinkPHP5网站分类目录程序 v2.2.221011
- CentOS 7安装shadowsock(一键安装脚本)
- AdminTemplate 基于LayUI 2.4.5实现的网站后台管理模板
- 用NW.js(node-webkit)开发多平台的桌面客户端
- PHP生成随机昵称/用户名
- THINKPHP5网站分类目录程序 尊云网站目录系统
- 织梦(DEDECMS)微信支付接口 微信插件
- 基于LayUI开发的 网站后台管理模板 BeginnerAdmin
- 响应式后台网站模板 - AMA.ADMIN
- layuiAdmin后台管理模板 Iframe版
- LayUI 1.0.9 升级 至 LayUI 2.1.4 方法
- 简洁清爽的会员中心模板
- jQuery幸运大转盘抽奖活动代码