훈련 결과는 'matplotlib' 라이브러리의 도움으로 Python을 사용하여 Tensorflow로 시각화할 수 있습니다. 'plot' 메소드는 콘솔에 데이터를 플롯하는 데 사용됩니다.
자세히 알아보기: TensorFlow란 무엇이며 Keras가 TensorFlow와 함께 신경망을 생성하는 방법은 무엇입니까?
모든 레이어에 정확히 하나의 입력 텐서와 하나의 출력 텐서가 있는 일반 레이어 스택으로 작업하는 데 사용되는 순차 모델을 구축하는 데 도움이 되는 Keras Sequential API를 사용할 것입니다.
하나 이상의 레이어를 포함하는 신경망을 컨볼루션 레이어라고 합니다. Convolutional Neural Network를 사용하여 학습 모델을 구축할 수 있습니다.
이미지 분류기는 keras.Sequential 모델을 사용하여 생성되고 데이터는 preprocessing.image_dataset_from_directory를 사용하여 로드됩니다. 데이터는 디스크에서 효율적으로 로드됩니다. 과적합이 식별되고 이를 완화하기 위한 기술이 적용됩니다. 이러한 기술에는 데이터 증대 및 드롭아웃이 포함됩니다. 3700개의 꽃 이미지가 있습니다. 이 데이터셋에는 5개의 하위 디렉터리가 포함되어 있으며 클래스당 하나의 하위 디렉터리가 있습니다. 데이지, 민들레, 장미, 해바라기, 튤립입니다.
Google Colaboratory를 사용하여 아래 코드를 실행하고 있습니다. Google Colab 또는 Colaboratory는 브라우저를 통해 Python 코드를 실행하는 데 도움이 되며 구성이 필요 없고 GPU(그래픽 처리 장치)에 대한 무료 액세스가 필요합니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.
예시
print("Calculating the accuracy") acc = history.history['accuracy'] val_acc = history.history['val_accuracy'] print("Calculating the loss") loss = history.history['loss'] val_loss = history.history['val_loss'] epochs_range = range(epochs) print("The results are being visualized") plt.figure(figsize=(8, 8)) plt.subplot(1, 2, 1) plt.plot(epochs_range, acc, label='Training Accuracy') plt.plot(epochs_range, val_acc, label='Validation Accuracy') plt.legend(loc='lower right') plt.title('Training and Validation Accuracy') plt.subplot(1, 2, 2) plt.plot(epochs_range, loss, label='Training Loss') plt.plot(epochs_range, val_loss, label='Validation Loss') plt.legend(loc='upper right') plt.title('Training and Validation Loss') plt.show()
코드 크레딧 -https://www.tensorflow.org/tutorials/images/classification
출력
Calculating the accuracy Calculating the loss The results are being visualized
설명
-
위의 플롯은 훈련 정확도와 검증 정확도가 동기화되지 않았음을 나타냅니다.
-
이 모델은 유효성 검사 데이터 세트에서 약 60%의 정확도만 달성했습니다.
-
이것을 과적합이라고 합니다.
-
훈련 정확도는 시간이 지남에 따라 선형적으로 증가했지만 검증 정확도는 훈련 과정에서 약 60%에서 정체되었습니다.
-
훈련 예제의 수가 적으면 모델은 훈련 예제에서 노이즈나 원치 않는 세부 정보를 학습합니다.
-
이는 새로운 예에서 모델의 성능에 부정적인 영향을 미칩니다.
-
과적합으로 인해 모델은 새 데이터 세트에서 잘 일반화할 수 없습니다.
-
과적합을 피할 수 있는 방법은 여러 가지가 있습니다. 과적합을 극복하기 위해 데이터 증강을 사용할 것입니다.