작성
·
224
0
강의잘 듣고있습니다..! 익숙치 않은 코드라서 체화하려고 제맛대로? 코딩하려다 오류가 나서 질문드립니다..
기본적으로 강의는 keras subclassing& softmax regression구현 편에 있는 코드를 따라했는데요. 거기다가 hidden_layer만 몇개 추가하고 돌렸더니
when subclassing the 'Model' class, you should implement a 'call()' method. 라고 오류가 발생합니다.. subclassing 한부분에 def call()해주었는데 말이죠 ..
아래는 구글 코랩 링크입니다. 문제점이 뭘까요?
https://colab.research.google.com/drive/1m0oMUAcsPZVn9NOFXJ5OunZAIKPYDGLc?usp=sharing
답변 1
0
안녕하세요~. 반갑습니다.
아래와 같이 입력하면 잘 동작할것입니다.
class SoftMaxRegression(tf.keras.Model):
def __init__(self):
super(SoftMaxRegression, self).__init__()
self.hidden1 = tf.keras.layers.Dense(50, kernel_initializer = initializer_by_random_normal_stddev(),
bias_initializer = initializer_by_random_normal_stddev())
self.hidden2 = tf.keras.layers.Dense(50, kernel_initializer = initializer_by_random_normal_stddev(),
bias_initializer = initializer_by_random_normal_stddev())
self.output_layer = tf.keras.layers.Dense(10, kernel_initializer= initializer_by_random_normal_stddev(),
bias_initializer = initializer_by_random_normal_stddev())
def call(self,x):
x = self.hidden1(x)
x= self.hidden2(x)
logits = self.output_layer(x)
return logits
기존 코드의 버그는 아래와 같습니다.
1. def __init__ 앞에는 띄어쓰기를 2칸으로 하고 def call 부분 앞에는 띄어쓰기를 4칸으로 함 (파이썬은 띄어쓰기에 민감한 언어라서 조심해야만합니다. 둘다 2칸으로 맞추거나 둘다 4칸으로 맞추시면 됩니다.)
2. output_layer 부분에 오타(ouput_layer)
그럼 좋은 하루 되세요~.
감사합니다.