Standalone-DeepLearning
Standalone-DeepLearning copied to clipboard
과제 1 관련 질문 있습니다.
과제를 해보려 했는데 감이 잘 안잡힙니다. 일단 class LinearModel(nn.Module): def init(self): super(LinearModel, self).init() self.linear = nn.Linear(in_features=784, out_features=10, bias=True) self.hidden_unit = nn.Linear(in_features=784, out_features=10, bias=True) self.hidden_layer = nn.Linear(in_features=784, out_features=10, bias=True)
def forward(self, x):
x = self.linear(x)
return x
def hidden(self, y, z):
y = self.hidden_unit
z = self.hidden_layer
return y,z
이렇게 변수(?)를 만들어야 될 것 같애서 만들었는데요. 변수를 조정하는 방법을 잘 모르겠고요, self.linear = nn.Linear(in_features=784, out_features=10, bias=True) 여기에서 괄호 안에 쓴 것들처럼 self.hidden_unit 도 써보려고 했는데 뭘 써야 하는지 잘 모르겠습니다. torch.nn.modules.linear 라고 구글링을 해봤는데요, 무슨 말인지 몰라서 질문 올립니다~ 혹시 방향 정도 조언을 해주실 수 있으신가요?
또, 제가 프로그래밍 기초 수업 외에는 프로그래밍 경험이 아예 없는데요, 어떤 부분을 더 공부 해야 하는지도 알려주실 수 있으신가요?
def hidden(self, y, z):
y = self.hidden_unit
z = self.hidden_layer
return y, z
위 코드에서 self.hidden_unit
은 아마 hidden layer 내부에 unit 갯수, 즉 node 갯수를 의미하신거 같은데, self.hidden_layer
변수의 의도를 잘 모르겠어서 완벽한 답변 드리지 못하는 점 죄송합니다.
hidden layer의 unit을 LinearModel
생성시에 정해주기 위해서는 LinearModel
의 생성자 (constructor)인 __init__
함수의 인자로 hidden_unit
을 전달해 주신 뒤, nn.LInear
object 생성시에 전달해 주시면 됩니다. 코드로 짜면 다음과 같이 되겠네요.
class LinearModel(nn.Module):
def __init__(self, hidden_unit): # 생성자인 __init__ 함수에 (앞 뒤 __ 에 주의) hidden_unit을 인자로 전달.
self.linear1 = nn.Linear(in_features=784, out_features=hidden_unit, bias=True) # hidden layer의 unit 수가 함수의 인자로 전달받은 hidden_unit이 되도록 명시.
self.linear2 = nn.Linear(in_features=hidden_unit, out_features=10, bias=True) # hidden layer와 output layer (10 units) 간의 연결
def forward(self, x):
x = self.linear1(x)
x = self.linear2(x)
return x
위와 같이 model을 디자인 하신 뒤 실제 사용시에는 model = LinearModel(1024)
와 같이 hidden unit을 명시해 주시면 되겠습니다.
또한 python 기본 문법의 관한 내용의 경우 오픈 톡방에 올려드린 점프 투 파이썬 웹 사이트를 참고하여 공부하시면 되겠습니다.
감사합니다~^^
cannot assign module before Module.init() call init() missing 1 required positional argument: 'hidden_unit' 올려주신 대로 한 번 해 봤는데, 오류가 떠서 조금씩 손봐도 둘 중에 하나가 계속 뜨네요.ㅠㅠㅜ Class를 잘 몰라서 뭔가 실수하나봐요. 내일 더 여쭤봐도 되나요?
혹시 해결되셨나요?