:: ai/tensorflow

tensorflow :: 텐서플로우 layers (v1 -> v2 코드 업그레이드 4)

토람이 2022. 3. 31. 17:37

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