pytorch에서forward의 용법과 해석 설명
앞말
최근pytorch를 사용할 때 모형 훈련을 할 때forward를 사용할 필요가 없습니다. 하나의 대상에 대응하는 매개 변수를 실례화하면 forward 함수를 자동으로 호출할 수 있습니다
즉,
forward의 사용
class Module(nn.Module):
def __init__(self):
super(Module, self).__init__()
# ......
def forward(self, x):
# ......
return x
data = ..... #
#
module = Module()
#
module(data)
#
# module.forward(data)
실제로
module(data)
... 과 같다
module.forward(data)
forward 사용 설명
등가의 원인은pythoncalss의 __call__및 __init__방법
class A():
def __call__(self):
print('i can be called like a function')
a = A()
a()
out:i can be called like a function
__call__안에서 다른 함수를 호출하다
class A():
def __call__(self, param):
print('i can called like a function')
print(' :{} : {}'.format(type(param), param))
res = self.forward(param)
return res
def forward(self, input_):
print('forward ')
print('in forward, :{} : {}'.format( type(input_), input_))
return input_
a = A()
input_param = a('i')
print(" a :", input_param)
out:i can called like a function
전송된 매개 변수의 형식은:
forward 함수가 호출되었습니다.
in forward, 전송 매개 변수 형식은:
대상 a가 전송하는 매개 변수는: i
추가: Pytorch 모델에서 nn.모델의 forward() 전방향 전파 불호출 설명
pytorch에서 호출된 모델의 forward () 전방향 전파가 없고 실렬화된 후에 파라미터를 전송합니다.
모델 정의
class Module(nn.Module):
def __init__(self):
super(Module, self).__init__()
# ......
def forward(self, x):
# ......
return x
data = ..... #
#
module = Module()
#
module(data)
# module.forward(data)
실제로module(data)는module와 같다.forward(data)등가의 원인은pythoncalss의 __call__ 클래스를 함수처럼 호출할 수 있습니다
모델 (x) 을 실행할 때, 밑바닥에서 자동으로 forward 방법을 호출하여 결과를 계산합니다
class A():
def __call__(self):
print('i can be called like a function')
a = A()
a()
>>>i can be called like a function
__call__ 에서 다른 함수를 호출할 수 있습니다
class A():
def __call__(self, param):
print(' __call__ , ',param)
res = self.forward(param)
return res
def forward(self, x):
print(' forward , : ',x)
return x
a = A()
y = a('i')
>>> __call__ , i
>>> forward , : i
print(" :", y)
>>> : i
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정확도에서 스케일링의 영향데이터셋 스케일링은 데이터 전처리의 주요 단계 중 하나이며, 데이터 변수의 범위를 줄이기 위해 수행됩니다. 이미지와 관련하여 가능한 최소-최대 값 범위는 항상 0-255이며, 이는 255가 최대값임을 의미합니다. 따...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.