
486
2
부
신경망과 딥러닝
kernel_initializer="lecun_normal")
for _ in range(5)]
self.out = keras.layers.Dense(output_dim)
def build(self, batch_input_shape):
n_inputs = batch_input_shape[-1]
self.reconstruct = keras.layers.Dense(n_inputs)
super().build(batch_input_shape)
def call(self, inputs):
Z = inputs
for layer in self.hidden:
Z = layer(Z)
reconstruction = self.reconstruct(Z)
recon_loss = tf.reduce_mean(tf.square(
reconstruction - inputs))
self.add_loss(0.05 * recon_loss)
return self.out(Z)
이 코드를 하나씩 살펴봅시다.
•
생성자가 다섯 개의 은닉층과 하나의 출력층으로 구성된 심층 신경망을 만듭니다.
•
build()
메서드에서 완전 연결 층을 하나 더 추가하여 모델의 입력을 재구성하는 데 사용합니다. 이 완전
연결 층의 유닛 개수는 입력 개수와 같아야 합니다. 이런 재구성 층을 ...