더북(TheBook)

GradientTape는 미분을 자동으로 계산합니다. 즉, 미분을 자동 계산해서 동적으로 기울기 값들을 확인할 수 있는 장점이 있습니다. 따라서 tape.gradient(loss, self.trainable_variables)는 손실에 대한 self.trainable_variables의 미분 값을 계산한다는 의미입니다.

인코더와 디코더를 위한 네트워크(신경망)를 생성합니다.

코드 13-11 인코더와 디코더 네트워크 생성

encoder = [
    tf.keras.layers.InputLayer(input_shape=(28,28,1)),
    tf.keras.layers.Conv2D(
        filters=32, kernel_size=3, strides=(2,2), activation="relu"
    ),
    tf.keras.layers.Conv2D(
        filters=64, kernel_size=3, strides=(2,2), activation="relu"
    ),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(units=2*2),
] ------ ①

decoder = [
    tf.keras.layers.Dense(units=7 * 7 * 64, activation="relu"),
    tf.keras.layers.Reshape(target_shape=(7,7,64)),
    tf.keras.layers.Conv2DTranspose(
        filters=64, kernel_size=3, strides=(2,2), padding="SAME", activation="relu"
    ),
    tf.keras.layers.Conv2DTranspose(
        filters=32, kernel_size=3, strides=(2,2), padding="SAME", activation="relu"
    ),
    tf.keras.layers.Conv2DTranspose(
        filters=1, kernel_size=3, strides=(1,1), padding="SAME", activation="sigmoid"
    ),
] ------ ②
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.