IT/TenserFlow

Tensorflow v2 에러

xengom 2019. 11. 25. 23:25

모두의 딥러닝 예제코드를 돌릴 때 tensorflow 버전이 2.0 이상인 경우 에러가 발생함(에러가 안나는 경우도 있긴 함)

그럴 경우 import tensorflow as tf 가 아닌 import tensorflow.compat.v1 as tf로 1.x버전을 임포트해오고tf.disable_v2_behavior()로 2.x버전을 비활성화 해줘야함.

 

위 방법은 코드 전체를 v1으로 사용하길 원하는 경우임.

특정 부분만 v1의 코드를 사용한다면 그 부분에만 .compat.v1를 넣어줘도 무방함

 

나는 tf.disable_v2_behavior()

이 부분을 상상도 못하고 있었는데 아래 부분에서 오류가 계속 남

 

코드

gradient_decent = tf.train.GradientDescentOptimizer(learning_rate).minimize(rmse)

오류

`loss` passed to Optimizer.compute_gradients should be a function when eager execution is enabled

 

eager execution으로 검색해보니 텐서플로우에 답이 올라와서 정리함.

 

출처:

https://stackoverflow.com/questions/57858219/loss-passed-to-optimizer-compute-gradients-should-be-a-function-when-eager-exe