okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

Keras: Pythonの深層学習ライブラリ完全ガイド

Python Keras ライブラリ完全ガイド

Keras は、シンプルかつ強力なディープラーニング用の高水準 API であり、TensorFlow 上で動作します。ニューラルネットワークの迅速なプロトタイピングや本番運用に最適です。本記事では、PythonKeras を使った深層学習モデルの構築方法を、コピー可能なコードブロック付きで紹介します。

1. Keras の概要

  • 直感的かつモジュール構造で使いやすい設計。
  • Sequential モデルと関数型 API に対応。
  • TensorFlow の一部として統合。

インストール方法

pip install tensorflow  # Keras は TensorFlow に含まれています

2. 主な機能と使用例

(1) モデルの構築(Sequential モデル)

from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential([
    layers.Dense(64, activation='relu', input_shape=(100,)),
    layers.Dense(10, activation='softmax')
])

(2) モデルのコンパイル

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

(3) モデルの学習(fit)

import numpy as np
x_train = np.random.random((1000, 100))
y_train = np.random.randint(10, size=(1000,))

model.fit(x_train, y_train, epochs=10, batch_size=32)

(4) モデルの評価(evaluate)

x_test = np.random.random((200, 100))
y_test = np.random.randint(10, size=(200,))
model.evaluate(x_test, y_test)

(5) モデルの予測(predict)

predictions = model.predict(x_test)
print(predictions[0])

(6) モデルの保存と読込

model.save("my_keras_model")
loaded_model = keras.models.load_model("my_keras_model")

(7) コールバック(EarlyStopping)

from tensorflow.keras.callbacks import EarlyStopping

es = EarlyStopping(monitor='val_loss', patience=3)
model.fit(x_train, y_train, epochs=20, batch_size=32, validation_split=0.2, callbacks=[es])

(8) Functional API の使用

inputs = keras.Input(shape=(100,))
x = layers.Dense(64, activation="relu")(inputs)
x = layers.Dense(64, activation="relu")(x)
outputs = layers.Dense(10, activation="softmax")(x)
model = keras.Model(inputs=inputs, outputs=outputs)

(9) カスタム損失関数の定義

def custom_loss(y_true, y_pred):
    return tf.reduce_mean(tf.square(y_true - y_pred))

model.compile(optimizer='adam', loss=custom_loss)

(10) TensorBoard ログ出力

log_dir = "logs"
tensorboard_cb = keras.callbacks.TensorBoard(log_dir=log_dir)
model.fit(x_train, y_train, epochs=5, callbacks=[tensorboard_cb])

3. Keras の主な機能まとめ

機能 説明
Sequential モデル 層を順に積み重ねる単純構造のモデル構築
Functional API 複雑な構造や分岐を含む柔軟なモデル構築
コールバック 学習の制御や自動保存(EarlyStopping 等)
モデル保存・再利用 .save() / load_model() で簡単に保存・復元
TensorBoard 学習ログを可視化してモニタリング可能

まとめ

Keras は、シンプルでわかりやすい構文ながら強力な機能を備えており、初心者からプロフェッショナルまで幅広く利用されています。深層学習の第一歩として、ぜひ Keras を使ってニューラルネットワーク構築を始めてみましょう!