chickenbestlover / RNN-Time-series-Anomaly-Detection

RNN based Time-series Anomaly detector model implemented in Pytorch.
Apache License 2.0
1.21k stars 317 forks source link

repackage_hidden의 역할이 뭔가요? #42

Open eddiemaru101 opened 4 years ago

eddiemaru101 commented 4 years ago

1_train_predictor.py 안에 있는 train 함수에서 아래 부분의 코드가 나와있는데

    hidden = model.repackage_hidden(hidden)
    hidden_ = model.repackage_hidden(hidden)

이 부분에서 repackage_hidden의 역할이 뭔가요? 밑에 나와있는 함수인데 제가 실력이 부족해서, 튜플에 담겨있는 h(t),c(t)를 다시 튜플에 담아서 return해주는 이유를 잘 이해 되지 않아서 질문합니다.

def repackage_hidden(self,h):
    """Wraps hidden states in new Variables, to detach them from their history."""
    if type(h) == tuple:
        return tuple(self.repackage_hidden(v) for v in h) # 이중 tuple을 푸는 역할
    else:
        return h.detach()
chickenbestlover commented 4 years ago

그래디언트를 끊어 주는 역할을 합니다.

https://discuss.pytorch.org/t/help-clarifying-repackage-hidden-in-word-language-model/226

위 링크에 파이토치 개발자가 개념을 자세히 설명해 주었네요.

참고해 보세요.

2020년 6월 18일 (목) 오전 11:39, thinkaction101 notifications@github.com님이 작성:

1_train_predictor.py 안에 있는 train 함수에서 아래 부분의 코드가 나와있는데

hidden = model.repackage_hidden(hidden)

hidden_ = model.repackage_hidden(hidden)

이 부분에서 repackage_hidden의 역할이 뭔가요? 밑에 나와있는 함수인데 제가 실력이 부족해서, 튜플에 담겨있는 h(t),c(t)를 다시 튜플에 담아서 return해주는 이유를 잘 이해 되지 않아서 질문합니다.

def repackage_hidden(self,h):

"""Wraps hidden states in new Variables, to detach them from their history."""

if type(h) == tuple:

    return tuple(self.repackage_hidden(v) for v in h) # 이중 tuple을 푸는 역할

else:

    return h.detach()

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/chickenbestlover/RNN-Time-series-Anomaly-Detection/issues/42, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACOZPVEFBDCOZGXIUKKKEETRXF44LANCNFSM4OBEXF3A .