안녕하세요
프로젝트 C를 진행중인 수강생입니다.
7. 네트워크 설계
class SimpleLSTM(nn.Module): def __init__(self, hidden_size=100, num_layers=1): super().__init__() self.hidden_size = hidden_size self.num_layers = num_layers ## 코드 시작 ## self.lstm = nn.LSTM(input_size=9, hidden_size=self.hidden_size, num_layers=self.num_layers, batch_first=True) # 위의 설명 1. 을 참고하여 None을 채우세요. self.fc = nn.Linear(self.hidden_size, 1) # 위의 설명 2. 를 참고하여 None을 채우세요. ## 코드 종료 ## def init_hidden(self, batch_size): # 코드 시작 hidden = torch.zeros((self.num_layers, batch_size, self.hidden_size)) # 위의 설명 3. 을 참고하여 None을 채우세요. cell = torch.zeros((self.num_layers, batch_size, self.hidden_size)) # 위의 설명 3. 을 참고하여 None을 채우세요. # 코드 종료 return hidden, cell def forward(self, x): # hidden, cell state init h, c = self.init_hidden(x.size(0)) h, c = h.to(x.device), c.to(x.device) ## 코드 시작 ## out, (h, c) = self.lstm(x, (h, c)) # 위의 설명 4. 를 참고하여 None을 채우세요. final_output = # 위의 설명 5. 를 참고하여 None을 채우세요. ## 코드 종료 ## return final_output
에서 문제를 겪고 있습니다. forward부분에서 final_output의 shape가 (batch_size, 1)이 되어야 하는데
fc를 지나도 shape이 원하는대로 변하지 않습니다.
혹시 이 글을 보시고 quf9483@naver.com 메일로 코드를 보내주시거나 답변 남겨주시면 감사합니다.
comment