>  기사  >  기술 주변기기  >  TensorFlow 및 Keras를 사용하여 딥 러닝 모델 구축

TensorFlow 및 Keras를 사용하여 딥 러닝 모델 구축

王林
王林앞으로
2024-01-24 09:18:05524검색

TensorFlow 및 Keras를 사용하여 딥 러닝 모델 구축

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 163.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제