TensorFlow와 Keras는 현재 가장 인기 있는 딥 러닝 프레임워크 중 하나입니다. 딥러닝 모델을 쉽게 구축하고 훈련할 수 있도록 높은 수준의 API를 제공할 뿐만 아니라, 다양한 유형의 딥러닝 모델 구축을 용이하게 하기 위해 다양한 레이어와 모델 유형을 제공합니다. 따라서 대규모 딥러닝 모델을 훈련하는 데 널리 사용됩니다.
TensorFlow와 Keras를 사용하여 이미지 분류를 위한 딥 러닝 모델을 구축하겠습니다. 이 예에서는 카테고리당 6000개의 32x32 컬러 이미지가 있는 10개의 서로 다른 카테고리가 포함된 CIFAR-10 데이터 세트를 사용합니다.
먼저 필요한 라이브러리와 데이터세트를 가져와야 합니다. TensorFlow 버전 2.0과 Keras API를 사용하여 모델을 빌드하겠습니다. 라이브러리와 데이터 세트를 가져오는 코드는 다음과 같습니다. ``파이썬 텐서플로우 astf 가져오기 tensorflow import keras에서 tensorflow.keras.datasets에서 mnist 가져오기 #데이터세트 가져오기 (x_train, y_train), (x_test, y_test) = mnist.load_data() ```` 위는 라이브러리와 데이터 세트를 가져오는 코드입니다. 우리는 `tensorflow` 라이브러리를 사용하여 모델을 구축하고 `mnist` 데이터세트를 예시 데이터세트로 사용합니다.
import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers from tensorflow.keras.datasets import cifar10 # 加载CIFAR-10数据集 (x_train, y_train), (x_test, y_test) = cifar10.load_data() # 将像素值缩放到0到1之间 x_train = x_train.astype("float32") / 255.0 x_test = x_test.astype("float32") / 255.0 # 将标签从整数转换为one-hot编码 y_train = keras.utils.to_categorical(y_train, 10) y_test = keras.utils.to_categorical(y_test, 10)
다음으로 컨볼루셔널 신경망 모델을 정의하겠습니다. 3개의 컨볼루션 레이어와 3개의 풀링 레이어를 사용하여 특징을 추출한 다음 분류를 위해 2개의 완전 연결 레이어를 사용합니다. 다음은 모델 정의입니다.
model = keras.Sequential( [ # 第一个卷积层 layers.Conv2D(32, (3, 3), activation="relu", input_shape=(32, 32, 3)), layers.MaxPooling2D((2, 2)), # 第二个卷积层 layers.Conv2D(64, (3, 3), activation="relu"), layers.MaxPooling2D((2, 2)), # 第三个卷积层 layers.Conv2D(128, (3, 3), activation="relu"), layers.MaxPooling2D((2, 2)), # 展平层 layers.Flatten(), # 全连接层 layers.Dense(128, activation="relu"), layers.Dense(10, activation="softmax"), ] )
이 모델에서는 모델이 복잡한 비선형 관계를 학습하는 데 도움이 될 수 있는 일반적으로 사용되는 비선형 함수인 ReLU 활성화 함수를 사용합니다. 또한 다중 클래스 분류를 위해 소프트맥스 활성화 함수를 사용했습니다.
이제 모델을 컴파일하고 훈련을 시작할 수 있습니다. 모델 훈련을 위해 Adam 옵티마이저와 교차 엔트로피 손실 함수를 사용하겠습니다. 코드는 다음과 같습니다. model.compile(optimizer='adam', loss='categorical_crossentropy') model.fit(X_train, y_train, epochs=10,atch_size=32)
# 编译模型 model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"]) # 训练模型 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) print("Test loss:", test_loss) print("Test accuracy:", test_acc)
마지막으로 훈련 기록을 사용하여 모델의 훈련 및 검증 손실과 정확도를 플롯할 수 있습니다. 훈련 이력을 그리는 코드는 다음과 같습니다.
import matplotlib.pyplot as plt # 绘制训练和验证损失 plt.plot(history.history["loss"], label="Training loss") plt.plot(history.history["val_loss"], label="Validation loss") plt.xlabel("Epoch") plt.ylabel("Loss") plt.legend() plt.show() # 绘制训练和验证准确率 plt.plot(history.history["accuracy"], label="Training accuracy") plt.plot(history.history["val_accuracy"], label="Validation accuracy") plt.xlabel("Epoch") plt.ylabel("Accuracy") plt.legend() plt.show()
위는 TensorFlow와 Keras 기반의 딥러닝 모델 예시에 대한 전체 코드입니다. 우리는 이미지 분류 작업을 위해 CIFAR-10 데이터세트를 사용하여 컨볼루셔널 신경망 모델을 구축했습니다.
위 내용은 TensorFlow 및 Keras를 사용하여 딥 러닝 모델 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!