まず、Pythonの環境をセットアップし、KerasとJAXをインストールします。次に、必要なライブラリをインポートします。
import numpy as np
import jax
import jax.numpy as jnp
from jax import random
from jax import grad, jit, vmap
from jax import lax
from jax.experimental import stax
from jax.experimental.stax import Conv, Dense, MaxPool, Relu, Flatten, LogSoftmax
import keras
from keras.models import Sequential
from keras.layers import Dense
次に、データセットを準備しましょう。データセットは、入力データと対応する出力ラベルからなるものです。ここでは、MNISTデータセットを例として使用します。
from keras.datasets import mnist
# データセットの読み込み
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# データの前処理
x_train = x_train.reshape(-1, 784) / 255.0
x_test = x_test.reshape(-1, 784) / 255.0
y_train = keras.utils.to_categorical(y_train, num_classes=10)
y_test = keras.utils.to_categorical(y_test, num_classes=10)
次に、モデルの定義とコンパイルを行います。KerasのSequentialモデルを使用して、モデルのレイヤーを定義します。
model = Sequential([
Dense(64, activation='relu', input_shape=(784,)),
Dense(64, activation='relu'),
Dense(10, activation='softmax')
])
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
モデルの学習を行います。Kerasのfitメソッドを使用して、データセットを用いてモデルをトレーニングします。
model.fit(x_train, y_train, batch_size=32, epochs=10, validation_data=(x_test, y_test))
最後に、モデルの評価と予測を行います。Kerasのevaluateメソッドを使用して、テストデータセットでモデルを評価します。
loss, accuracy = model.evaluate(x_test, y_test)
print('Test loss:', loss)
print('Test accuracy:', accuracy)
これで、KerasとJAXを使用して機械学習モデルを構築する方法がわかりました。これらのライブラリを活用することで、より効率的で柔軟なモデルの構築が可能です。さらに、上記のコード例を応用して、他のデータセットやモデルにも適用することができます。