wikibook / tf2

《시작하세요! 텐서플로 2.0 프로그래밍》 예제 코드
https://wikibook.co.kr/tf2/
47 stars 46 forks source link

# 4.5 텐서플로우를 이용해서 2차 함수 회귀선 구하기 #1

Closed asurama closed 4 years ago

asurama commented 4 years ago

TypeError Traceback (most recent call last)

in 21 for i in range(1000): 22 # 잔차의 제곱의 평균을 최소화(minimize)합니다. ---> 23 optimizer.minimize(compute_loss, var_list=[a,b,c]) 24 25 if i % 100 == 99: c:\programdata\anaconda3\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\optimizer_v2\optimizer_v2.py in minimize(self, loss, var_list, grad_loss, name) 315 """ 316 grads_and_vars = self._compute_gradients( --> 317 loss, var_list=var_list, grad_loss=grad_loss) 318 319 return self.apply_gradients(grads_and_vars, name=name) c:\programdata\anaconda3\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\optimizer_v2\optimizer_v2.py in _compute_gradients(self, loss, var_list, grad_loss) 349 if not callable(var_list): 350 tape.watch(var_list) --> 351 loss_value = loss() 352 if callable(var_list): 353 var_list = var_list() in compute_loss() 14 # 잔차의 제곱의 평균을 반환하는 함수입니다. 15 def compute_loss(): ---> 16 y_pred = a * X**2 + b * X + c 17 loss = tf.reduce_mean((Y - y_pred) ** 2) 18 return loss TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'int'
greentec commented 4 years ago

코드를 깔끔하게 하려다가 오류가 발생했네요. 불편을 드려 죄송합니다.

y_pred = a * X * X + b * X + c

로 수정하시면 정상 작동 가능합니다. colab과 github에서 해당 코드(예제 #4.5)와 비슷한 오류를 내는 코드(예제 #4.6)를 수정한 후 완료처리하겠습니다.

greentec commented 4 years ago
asurama commented 4 years ago

감사합니다.