torch.expand() vs. torch.repeat()
네트워크에 feed하다보면 차원을 만져줘야 되는 일이 있다. 그때 사용하는 것이 torch.repeat()인데, torch.expand()랑 구체적으로 어떠한 차이가 있는지 모르겠어서 한번 찾아봤다. torch.repeat(*sizes) 특정 텐서의 sizes 차원의 데이터를 반복한다. 예시를 통해 이해해보자. >>> x = torch.tensor([1, 2, 3]) >>> x.repeat(4, 2) tensor([[ 1, 2, 3, 1, 2, 3], [ 1, 2, 3, 1, 2, 3], [ 1, 2, 3, 1, 2, 3], [ 1, 2, 3, 1, 2, 3]]) >>> x.repeat(4, 2, 1).size() torch.Size([4, 2, 3]) x는 [1, 2, 3]으로, 이를 dim=0으로 4..
더보기
PyTorch RNN
그냥 PyTorch RNN 이용하면서 중요한 점 간단하게 공유해봄. 실제 코드에서의 이야기이니 RNN을 모르는 사람은 이론적인 배경을 공부하고 오면 좋을듯 싶다. 기본 구조 우리가 생각하는 것과는 다르게, RNN은 $x_1, ..., x_{t}$]의 sequence 데이터 전부를 필요로 한다. 즉, iterative $x=1, 2, 3, ...$을 하나씩 넣는 구조가 아니다. 기본 구조는 다음과 같이 생겼다. model = RNN(input_size: int, hidden_size: int, num_layers: int=1, bias=True, batch_first: bool, dropout: float, bidirectional: bool=False, nonlinearity: str='tanh&..
더보기