layers
텐서플로우 1.x 버전으로 개발된 코드라면 layers 모듈을 사용했을 확률이 매우 높다.
모델링을 위해 필요한 기본적인 layer 를 정의하는 데 사용되기 때문이다.
그러나 2.x 버전 환경에서 실행시키면 다음과 같이 에러가 난다.
tf.layers.dense()
tf.layers.dropout()
# AttributeError: module 'tensorflow' has no attribute 'layers'
이는 텐서플로우 v2.0 에서 더 이상 layers 모듈을 지원하지 않기 때문이다.
1. tf.keras 사용
v2.0 에서는 tf.keras 를 사용하여 layer 를 정의할 수 있다.
tf.keras.layers 의 Dense 를 사용해서 다음과 같은 방법으로 정의할 수 있다. (y)
x = tf.keras.Input((28,))
y = tf.keras.layers.Dense(units=3)(x)
model = tf.keras.Model(x, y)
2. v1.0 코드 그대로 사용
앞선 포스팅에도 언급했지만 compat 모듈을 사용하여 v2.0 기능을 끄도록 설정,
v1.0 코드를 기존 그대로 사용하는 방법도 있다.
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
y = tf.layers.dense(x, units=3)
이런 식으로 상단에 정의해두고 기존 코드를 그대로 사용하면 된다.
그러나 텐서플로우 공식 홈페이지에서는 최대한 keras 모듈을 사용하길 권장하는 듯하니,
새 버전에 맞게 keras 모듈을 활용하는 것도 좋은 방법일 것 같다 :)
300x250
':: ai > tensorflow' 카테고리의 다른 글
tensorflow :: 텐서플로우 Optimizer 개념 및 코드 업그레이드 (v1 -> v2 코드 업그레이드 6) (0) | 2022.04.17 |
---|---|
tensorflow :: 텐서플로우 losses 의 regularization loss (v1 -> v2 코드 업그레이드 5) (0) | 2022.04.12 |
tensorflow :: 텐서플로우 contrib (v1 -> v2 코드 업그레이드 3) (0) | 2022.03.30 |
tensorflow :: 텐서플로우 session, placeholder (v1 -> v2 코드 업그레이드 2) (0) | 2022.03.07 |
tensorflow :: 텐서플로우 set_random_seed (v1 -> v2 코드 업그레이드 1) (0) | 2022.02.28 |