CNN(컨볼루셔널 신경망)은 이미지 처리 및 인식 작업을 위한 강력한 도구입니다. 역전파를 통해 기능의 공간 계층을 자동으로 적응적으로 학습하도록 설계되었습니다. Python과 TensorFlow/Keras를 사용하여 기본 CNN을 구축하는 방법을 살펴보겠습니다.
시작하기 전에 다음 라이브러리가 설치되어 있는지 확인하세요.
pip install tensorflow numpy matplotlib
필수 라이브러리를 가져오는 것부터 시작하세요.
import tensorflow as tf from tensorflow.keras import layers, models import matplotlib.pyplot as plt
이 예에서는 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
이제 CNN 모델을 구성해 보겠습니다. 이 모델에는 Convolutional, Pooling 및 Dense 레이어와 같은 주요 레이어가 포함됩니다.
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'))
모델 컴파일에는 학습 중에 모니터링할 최적화 프로그램, 손실 함수 및 측정항목을 지정하는 작업이 포함됩니다.
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
몇 에포크 동안 훈련 데이터로 CNN 모델을 훈련합니다.
history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
훈련 후 테스트 데이터로 모델을 평가하여 성능이 얼마나 좋은지 확인하세요.
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2) print(f'\nTest accuracy: {test_acc}')
마지막으로 훈련 에포크에 대한 정확도와 손실을 시각화해 보겠습니다.
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
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3