TensorFlow と Keras は、現在最も人気のある深層学習フレームワークの 1 つです。これらは、ディープ ラーニング モデルの構築とトレーニングを容易にする高レベルの API を提供するだけでなく、さまざまなタイプのディープ ラーニング モデルの構築を容易にするさまざまなレイヤーとモデル タイプも提供します。したがって、大規模な深層学習モデルをトレーニングするために広く使用されています。
TensorFlow と Keras を使用して、画像分類のための深層学習モデルを構築します。この例では、CIFAR-10 データセットを使用します。これには、10 の異なるカテゴリが含まれており、カテゴリごとに 6000 個の 32x32 カラー画像が含まれています。
まず、必要なライブラリとデータセットをインポートする必要があります。 TensorFlow バージョン 2.0 と Keras API を使用してモデルを構築します。ライブラリとデータセットをインポートするコードは次のとおりです。 「」パイソン テンソルフロー asf をインポートする tensorflowインポートケラスから 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,batch_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 中国語 Web サイトの他の関連記事を参照してください。