Keras 3.0になってマルチバックエンド(TensorFlow,jax, PyTorch)が使えるようになったので速度を比較してみる(2) MNIST(手書き数字認識)でPythonでCNN(畳み込みニューラルネットワーク)でやってみる。TensorFlowが一番速く、PyTorch, JAXの順(CPUのみ使用の場合)。
Kerasが3.0になってまた独立してマルチバックエンドTensorFlow, JAX, PyTorch)が使えるようになっていたということで
前回はDNN(Deep Neural Networks)で比較してみた。
今回はCNN(畳み込みニューラルネットワーク)でやってみよう。
初期設定は共通で、Kerasのサイトの例題をFunctional APIに書き直して使っている。
import os
# os.environ["KERAS_BACKEND"] = "tensorflow"
# os.environ["KERAS_BACKEND"] = "jax"
os.environ["KERAS_BACKEND"] = "torch"
import keras
import numpy as np
# データはMNIST
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train = x_train.astype("float32") / 255
x_test = x_test.astype("float32") / 255
x_train = np.expand_dims(x_train, -1)
x_test = np.expand_dims(x_test, -1)
# Functional APIでCNN設定
inputs = keras.Input(shape=(28, 28, 1))
x = keras.layers.Conv2D(64, kernel_size=(3, 3), activation="relu")(inputs)
x = keras.layers.Conv2D(64, kernel_size=(3, 3), activation="relu")(x)
x = keras.layers.MaxPooling2D(pool_size=(2, 2))(x)
x = keras.layers.Conv2D(128, kernel_size=(3, 3), activation="relu")(x)
x = keras.layers.Conv2D(128, kernel_size=(3, 3), activation="relu")(x)
x = keras.layers.GlobalAveragePooling2D()(x)
x = keras.layers.Dropout(0.5)(x)
outputs = keras.layers.Dense(10, activation="softmax")(x)
# モデルの設定
model = keras.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer=keras.optimizers.Adam(), loss=keras.losses.SparseCategoricalCrossentropy(),
metrics=[keras.metrics.SparseCategoricalAccuracy(name="acc"),])
|
時間を計測する学習部分はこのコード。
batch_size = 128
epochs = 5
keras.utils.set_random_seed(1)
model.fit(
x_train,
y_train,
batch_size=batch_size,
epochs=epochs,
validation_split=0.15,
)
score = model.evaluate(x_test, y_test, verbose=0)
print(score)
|
結果はこちら。
TensorFlow
JAX
PyTorch
TensorFlowがやっぱり速いのは前と同じだが、今度はJAXが非常に遅くなった。
謎だ…GPU使えば結果は変わるのかな。次はRNNをやってみよう。
« 高周波・RFニュース 2024年7月18日 QorvoのSmart Living eBook,BroadcomのCPOの解説,iFixitの任天堂スイッチ修理用ツールキット,SEMCOの2000V対応車載MLCC,SamsungがナレッジグラフのOxford Semantec Technologiesを買収,TIのパワーモジュールパッケージ(インダクタ内蔵)記事 | トップページ | 高周波・RFニュース 2024年7月19日 Nanusensの6G RF-FEM向けDTC、LNA市場は2030年で40億ドル規模に、HMD Skylineの分解しやすさ、アメリカがパッケージングに16億ドルを投資、ルネサスの宇宙向けリファレンスデザイン、Wi-Fi 8のMAPC、Walmartのonn分解 »
「パソコン・インターネット」カテゴリの記事
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年2月7日 フジクラがMWCバルセロナでミリ波(28GHz,60GHz)モジュールデモ、Qorvo、NXP、AMDらのヘルスケアウェビナー、Samsung Galaxy S25もやはり5Gミリ波AiPは1個、u-bloxがBluetooth LEモジュール4種発表(2025.02.07)
- 高周波・RFニュース 2025年2月6日 3GPPがRel-20(5G Advancedと6G)の計画を公開、SEMCOが産業用MLCC(0805 inch, X6S, 22uF, 25V)と車載MLCC(1005,2.2uF,10V)を発表、KYOCERA AVXのスーパーキャパシタシミュレーションソフト、I向けフォトニックチップ解説(2025.02.06)
- 高周波・RFニュース 2025年2月5日 Mavenirの5G NTNホワイトペーパー、ミニサーキットの1.5mm角QFNパッケージMMIC、Keysigntがスペインに6G研究ラボ設立、アイルランドとスコットランドの大学がRIS(reconfigurable intelligent surfaces)で協力(2025.02.05)
- 高周波・RFニュース 2025年2月4日 Samsung Galaxy S25plus、S25ultra分解、やっぱり5Gミリ波AiPは1個だけ、スマートワイヤレス聴診器にNordicのICが採用、TDKのTMR角度センサ解説(2025.02.04)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年2月7日 フジクラがMWCバルセロナでミリ波(28GHz,60GHz)モジュールデモ、Qorvo、NXP、AMDらのヘルスケアウェビナー、Samsung Galaxy S25もやはり5Gミリ波AiPは1個、u-bloxがBluetooth LEモジュール4種発表(2025.02.07)
- 高周波・RFニュース 2025年2月6日 3GPPがRel-20(5G Advancedと6G)の計画を公開、SEMCOが産業用MLCC(0805 inch, X6S, 22uF, 25V)と車載MLCC(1005,2.2uF,10V)を発表、KYOCERA AVXのスーパーキャパシタシミュレーションソフト、I向けフォトニックチップ解説(2025.02.06)
- 高周波・RFニュース 2025年2月5日 Mavenirの5G NTNホワイトペーパー、ミニサーキットの1.5mm角QFNパッケージMMIC、Keysigntがスペインに6G研究ラボ設立、アイルランドとスコットランドの大学がRIS(reconfigurable intelligent surfaces)で協力(2025.02.05)
- 高周波・RFニュース 2025年2月4日 Samsung Galaxy S25plus、S25ultra分解、やっぱり5Gミリ波AiPは1個だけ、スマートワイヤレス聴診器にNordicのICが採用、TDKのTMR角度センサ解説(2025.02.04)
« 高周波・RFニュース 2024年7月18日 QorvoのSmart Living eBook,BroadcomのCPOの解説,iFixitの任天堂スイッチ修理用ツールキット,SEMCOの2000V対応車載MLCC,SamsungがナレッジグラフのOxford Semantec Technologiesを買収,TIのパワーモジュールパッケージ(インダクタ内蔵)記事 | トップページ | 高周波・RFニュース 2024年7月19日 Nanusensの6G RF-FEM向けDTC、LNA市場は2030年で40億ドル規模に、HMD Skylineの分解しやすさ、アメリカがパッケージングに16億ドルを投資、ルネサスの宇宙向けリファレンスデザイン、Wi-Fi 8のMAPC、Walmartのonn分解 »
コメント