>  기사  >  백엔드 개발  >  Python으로 기본 CNN(Convolutional Neural Network) 구축

Python으로 기본 CNN(Convolutional Neural Network) 구축

WBOY
WBOY원래의
2024-08-28 18:33:07728검색

Building a Basic Convolutional Neural Network (CNN) in Python

CNN(컨볼루션 신경망)은 이미지 처리 및 인식 작업을 위한 강력한 도구입니다. 역전파를 통해 기능의 공간 계층을 자동으로 적응적으로 학습하도록 설계되었습니다. Python과 TensorFlow/Keras를 사용하여 기본 CNN을 구축하는 방법을 살펴보겠습니다.

? 전제 조건

시작하기 전에 다음 라이브러리가 설치되어 있는지 확인하세요.

pip install tensorflow numpy matplotlib

?️ 1단계: 필요한 라이브러리 가져오기

필수 라이브러리를 가져오는 것부터 시작하세요.

import tensorflow as tf
from tensorflow.keras import layers, models
import matplotlib.pyplot as plt

?️ 2단계: 데이터 세트 로드 및 전처리

이 예에서는 10개 클래스의 60,000개의 32x32 컬러 이미지로 구성된 CIFAR-10 데이터 세트를 사용합니다.

# Load the CIFAR-10 dataset
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()

# Normalize the pixel values to be between 0 and 1
x_train, x_test = x_train / 255.0, x_test / 255.0

? 3단계: CNN 모델 구축

이제 CNN 모델을 구성해 보겠습니다. 이 모델에는 핵심 레이어인 컨벌루션 레이어, 풀링 레이어, 밀도 레이어가 포함됩니다.

model = models.Sequential()

# First Convolutional Layer
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))

# Second Convolutional Layer
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))

# Third Convolutional Layer
model.add(layers.Conv2D(64, (3, 3), activation='relu'))

# Flatten the output and add Dense layers
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))

? 4단계: 모델 컴파일

모델 컴파일에는 학습 중에 모니터링할 최적화 프로그램, 손실 함수 및 측정항목을 지정하는 작업이 포함됩니다.

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

? 5단계: 모델 학습

몇 에포크 동안 훈련 데이터로 CNN 모델을 훈련합니다.

history = model.fit(x_train, y_train, epochs=10, 
                    validation_data=(x_test, y_test))

? 6단계: 모델 평가

훈련 후 테스트 데이터로 모델을 평가하여 성능이 얼마나 좋은지 확인하세요.

test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print(f'\nTest accuracy: {test_acc}')

?️ 7단계: 훈련 결과 시각화

마지막으로 학습 에포크에 대한 정확도와 손실을 시각화해 보겠습니다.

plt.plot(history.history['accuracy'], label='accuracy')
plt.plot(history.history['val_accuracy'], label = 'val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.ylim([0, 1])
plt.legend(loc='lower right')
plt.show()

? 결론

이 기본 CNN 모델은 이미지 분류 작업을 처리하기 위한 훌륭한 출발점 역할을 합니다. 이 모델을 이해하고 수정하면 다양한 아키텍처와 기술을 실험하여 모델 성능을 향상할 수 있습니다. 더욱 강력한 신경망을 구축하려면 계속해서 레이어를 탐색하고 조정하세요! ?


이 코드는 쉽게 따라하고 수정할 수 있도록 설계되어 초보자와 Python에서 CNN을 시작하려는 사람들에게 적합합니다.

CNN 아키텍처에 대한 블로그 링크:https://dev.to/abhinowww/demystifying-cnn-neural-network-layers-a-deep-dive-into-ai-architecture-12d2

위 내용은 Python으로 기본 CNN(Convolutional Neural Network) 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.