[TensorFlow] Dropout Layer 예제

tf.keras.layers.Dropout 레이어는 과적합을 방지하기 위해 무작위로 일부 뉴런을 제거하는 역할을 합니다. 아래는 tf.keras.layers.Dropout 레이어를 사용한 예제입니다.

import tensorflow as tf

## 더미 데이터 생성
dummy_data = tf.random.normal(shape=(4, 8))

## Dropout 레이어 정의
dropout_layer = tf.keras.layers.Dropout(rate=0.5)  # 제거할 뉴런의 비율을 50%로 설정

## Dropout 레이어 실행
dropped_data = dropout_layer(dummy_data, training=True)  # training=True는 학습 모드에서 Dropout을 활성화

print("Input data:")
print(dummy_data)
print("\nDropped data:")
print(dropped_data)` 

위 예제에서는 tf.keras.layers.Dropout 레이어를 사용하여 4x8 크기의 더미 데이터에 대한 레이어를 정의하고 실행합니다. rate 매개변수로 제거할 뉴런의 비율을 설정하고, training=True로 설정하여 학습 중에 Dropout을 활성화합니다.

실행 결과 예시:

Input data:
[[-0.41993752  0.36293575 -0.40710697 -0.5484049  -0.5559952   0.13150997  1.0876192   0.525524  ]
 [ 1.1484327  -1.2524178   1.2162354   0.02424201 -0.29441628  0.08959706 -0.20130843 -1.1253488 ]
 [-0.6327129  -1.4588693   0.20154816  1.218564    0.19527164 -0.6523673   0.7580649   0.79459155]
 [ 1.7898821  -1.434938    1.7511538   0.19450805  0.4098562  -0.7632403  -0.5385266   0.6019916 ]]

Dropped data:
[[-0.83987504  0.7258715  -0.          -1.0968097  -1.1119903   0.26301995  2.1752384   1.051048  ]
 [ 0.         -2.5048354   0.         -0.04848402 -0.58883256  0.         -0.         -2.2506976 ]
 [-0.          -2.9177387   0.40309632  2.437128    0.         -1.3047347   0.         -0.        ]
 [ 3.5797644  -0.          0.          0.3890161   0.8197124  -0.          0.          1.2039832 ]]` 

위에서 확인할 수 있듯이, 입력 데이터와 Dropout을 적용한 데이터가 출력됩니다. tf.keras.layers.Dropout 레이어를 사용하면 무작위로 일부 뉴런이 제거되어 과적합을 방지하고 모델의 일반화 능력을 향상시킬 수 있습니다.