【Windows】Python3.10+TensorFlow2.6-GPU+CUDA11.4+cuDNN8.2を動かす【4】
POSTED BY
2022-10-09
2022-10-09


【Windows】Python3.10+TensorFlow2.6-GPU+CUDA11.4+cuDNN8.2を動かす【1】
【Windows】Python3.10+TensorFlow2.6-GPU+CUDA11.4+cuDNN8.2を動かす【2】
【Windows】Python3.10+TensorFlow2.6-GPU+CUDA11.4+cuDNN8.2を動かす【3】
すべて最新のもので固められてGPUも無事認識できたので、サンプルを動かしてみます。
OREILLYジャパンの書籍
生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする David Foster
の、最初のサンプルーCIFAR10画像の判別コードーを実装してみます。
Python | generative-deep-learning-chapter2-1.py | GitHub Source |
#ライブラリ import numpy as np import tensorflow as tf from tensorflow.keras.utils import to_categorical from tensorflow.keras.datasets import cifar10 from tensorflow.keras.layers import Input, Flatten, Dense, Activation from tensorflow.keras.models import Model from tensorflow.keras.optimizers import Adam import matplotlib.pyplot as plt #データロード NUM_CLASSES = 10 (x_train, y_train), (x_test, y_test) = cifar10.load_data() x_train = x_train.astype('float32') / 255.0 x_test = x_test.astype('float32') / 255.0 y_train = to_categorical(y_train, NUM_CLASSES) y_test = to_categorical(y_test, NUM_CLASSES) data = np.random.randint(low=0, high=5, size=10) print(data) print(to_categorical(data)) print(to_categorical(data, 8)) #モデル定義・コンパイルをMirroredStrategy withブロック内で行い、以降のトレーニングをデュアルGPUで行う with tf.distribute.MirroredStrategy(cross_device_ops=tf.distribute.HierarchicalCopyAllReduce()).scope(): input_layer = Input(shape=(32, 32, 3)) x = Flatten()(input_layer) x = Dense(units=200, activation='relu')(x) x = Dense(units=150, activation='relu')(x) output_layer = Dense(units=10, activation='softmax')(x) output_layer2 = Dense(units=200)(x) output_layer2 = Activation('relu')(output_layer2) model = Model(input_layer, output_layer) model.summary() opt = Adam(lr=0.0005) model.compile(loss='categorical_crossentropy', optimizer=opt, metrics=['accuracy']) #トレーニング実行 model.fit(x_train, y_train, batch_size = 32, epochs = 10, shuffle = True) model.evaluate(x_test, y_test, batch_size=32) #予測インデックステスト CLASSES = np.array(['AirPlane', 'Car','Bird','Cat', 'Deer','Dog','Flog','Horse','Ship','Truck']) preds = model.predict(x_test) preds_single = CLASSES[np.argmax(preds, axis= -1)] actual_single = CLASSES[np.argmax(y_test, axis = -1)] print(preds[0]) print(np.argmax(preds[0])) print(preds_single[0]) print(actual_single[0]) #予測画像リスト表示テスト n_to_show = 10 indices = np.random.choice(range(len(x_test)), n_to_show) fig = plt.figure(figsize=(15, 3)) fig.subplots_adjust(hspace=0.4, wspace=0.4) for i, idx in enumerate(indices): img = x_test[idx] ax = fig.add_subplot(1, n_to_show, i+1) ax.axis('off') ax.text(0.5, -0.35, 'pred = ' + str(preds_single[idx]), fontsize=10, ha='center', transform=ax.transAxes) ax.text(0.5, -0.7, 'act = ' + str(actual_single[idx]), fontsize=10, ha='center', transform=ax.transAxes) ax.imshow(img)
複数GPUを使わせるため、モデルの定義~コンパイルまでのブロックをインデントして、
import tensorflow as tf with tf.distribute.MirroredStrategy(cross_device_ops=tf.distribute.HierarchicalCopyAllReduce()).scope():
の中に入れます。jupyter qtconsole にコメントブロック単位に貼り付け実行した結果は以下です。
Jupyter QtConsole 5.1.1 Python 3.10.0 (tags/v3.10.0:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] Type 'copyright', 'credits' or 'license' for more information IPython 7.28.0 -- An enhanced Interactive Python. Type '?' for help. [3 1 1 1 3 1 1 1 2 3] [[0. 0. 0. 1.] [0. 1. 0. 0.] [0. 1. 0. 0.] [0. 1. 0. 0.] [0. 0. 0. 1.] [0. 1. 0. 0.] [0. 1. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.]] [[0. 0. 0. 1. 0. 0. 0. 0.] [0. 1. 0. 0. 0. 0. 0. 0.] [0. 1. 0. 0. 0. 0. 0. 0.] [0. 1. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 1. 0. 0. 0. 0.] [0. 1. 0. 0. 0. 0. 0. 0.] [0. 1. 0. 0. 0. 0. 0. 0.] [0. 1. 0. 0. 0. 0. 0. 0.] [0. 0. 1. 0. 0. 0. 0. 0.] [0. 0. 0. 1. 0. 0. 0. 0.]] INFO:tensorflow:Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0', '/job:localhost/replica:0/task:0/device:GPU:1') Model: "model" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= input_1 (InputLayer) [(None, 32, 32, 3)] 0 _________________________________________________________________ flatten (Flatten) (None, 3072) 0 _________________________________________________________________ dense (Dense) (None, 200) 614600 _________________________________________________________________ dense_1 (Dense) (None, 150) 30150 _________________________________________________________________ dense_2 (Dense) (None, 10) 1510 ================================================================= Total params: 646,260 Trainable params: 646,260 Non-trainable params: 0 _________________________________________________________________ INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). Epoch 1/10 INFO:tensorflow:batch_all_reduce: 6 all-reduces with algorithm = hierarchical_copy, num_packs = 1 INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). INFO:tensorflow:batch_all_reduce: 6 all-reduces with algorithm = hierarchical_copy, num_packs = 1 INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',). 1563/1563 [==============================] - 18s 8ms/step - loss: 1.8522 - accuracy: 0.3292 Epoch 2/10 1563/1563 [==============================] - 13s 9ms/step - loss: 1.6648 - accuracy: 0.4022 Epoch 3/10 1563/1563 [==============================] - 12s 8ms/step - loss: 1.5831 - accuracy: 0.4331 Epoch 4/10 1563/1563 [==============================] - 13s 8ms/step - loss: 1.5281 - accuracy: 0.4542 Epoch 5/10 1563/1563 [==============================] - 11s 7ms/step - loss: 1.4924 - accuracy: 0.4691 Epoch 6/10 1563/1563 [==============================] - 12s 8ms/step - loss: 1.4623 - accuracy: 0.4760 Epoch 7/10 1563/1563 [==============================] - 13s 8ms/step - loss: 1.4352 - accuracy: 0.4879 Epoch 8/10 1563/1563 [==============================] - 12s 7ms/step - loss: 1.4109 - accuracy: 0.4974 Epoch 9/10 1563/1563 [==============================] - 12s 8ms/step - loss: 1.3870 - accuracy: 0.5067 Epoch 10/10 1563/1563 [==============================] - 10s 7ms/step - loss: 1.3680 - accuracy: 0.5142 313/313 [==============================] - 3s 5ms/step - loss: 1.4446 - accuracy: 0.4915 Out[4]: [1.4446195363998413, 0.49149999022483826] [0.10204831 0.21945089 0.03836511 0.33486548 0.09174908 0.12024193 0.02515405 0.00319037 0.05551995 0.00941479] 3 Cat Cat
無事トレーニングと予測表示ができています。
Y!mobile正規取扱店!現金キャッシュバックで最短翌週還元!【ヤングモバイル】

「ヤングモバイル」は、Y!mobile正規取扱い店です。
Y!mobileにお乗り換え(MNP)、新規契約でおとくな特典...【READ MORE】
描きやすさと多彩な機能が評価され、イラスト投稿サイト・pixivでの利用数No.1。初めての方にも、プロにもおすすめの定番ペイントソフトです。まずは無料体験版から!

・イラスト・マンガ制作ソフトの定番 「CLIP STUDIO PAINT」
発売から3年で100万人を超える方に使っていただ...【READ MORE】
女性らしさと韓国テイストも取り入れた大人レディースファッション通販【JULIA BOUTIQUE】

レディースファッション通販サイト【ジュリアブティック】
<ブランドについて>
定番アイテムや流行のトレ...【READ MORE】
Android
iPhone/iPad
Flutter
MacOS
Windows
Debian
Ubuntu
CentOS
FreeBSD
RaspberryPI
HTML/CSS
C/C++
PHP
Java
JavaScript
Node.js
Swift
Python
Amazon/AWS
CORESERVER
Google
仮想通貨
LINE
IBM Watson
Microsoft Azure
Xcode
VMware
MySQL
PostgreSQL
Redis
Groonga
Git/GitHub
Apache
nginx
Postfix
SendGrid
Hackintosh
Hardware
Fate/Grand Order
ウマ娘
将棋
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
※本記事内容の無断転載を禁じます。
【キーワード検索】
売れてます。生地表面からのダニ通過率0%の布団。【ディーガード】公式サイトはコチラ
プロピア社共同開発:アンダーヘア専用ヘアコンタクト【Venus Veil(ヴィーナスベール)】
オルビスの大人気無油分クレンジング『クレンジングリキッド』販売
中古iPhone/Andoroidスマートフォンのオンラインショップ【にこスマ】
nifty光なら自社転用でも他社転用でも貰えるキャッシュバック2万円
掲載実績多数!話題のマイクロニードル【sirobariモイストパッチ】
塗って寝るだけ、洗い流さない保湿パック!翌朝おどろく極上肌!【桜花媛】
1本で全身使えるガレイド・プレミアム・オールインワン
球界のレジェンド山本昌さん愛用!冷え対策に【ママウォーム】掛布団
楽天ポイントが使える!Amazonペイも使える!犬用サプリ「腸の健康維持に」【毎日爽快 植物酵素&乳酸菌】

プロピア社共同開発:アンダーヘア専用ヘアコンタクト【Venus Veil(ヴィーナスベール)】

オルビスの大人気無油分クレンジング『クレンジングリキッド』販売

中古iPhone/Andoroidスマートフォンのオンラインショップ【にこスマ】

nifty光なら自社転用でも他社転用でも貰えるキャッシュバック2万円

掲載実績多数!話題のマイクロニードル【sirobariモイストパッチ】

塗って寝るだけ、洗い流さない保湿パック!翌朝おどろく極上肌!【桜花媛】

1本で全身使えるガレイド・プレミアム・オールインワン

球界のレジェンド山本昌さん愛用!冷え対策に【ママウォーム】掛布団

楽天ポイントが使える!Amazonペイも使える!犬用サプリ「腸の健康維持に」【毎日爽快 植物酵素&乳酸菌】

【最近の記事】【全部の記事】
ドコモAndroidケータイ機種変更・データ保存メモ【OpenAI Python API】Models/List modelsのサンプル
【Python】配列の要素を順番に取得する
PortForwarderでno hostkey algと言われ接続できない場合
【Linux】iconv/libiconvをソースコードからインストール
【OpenAI Node.js API】Images/Create image variationのサンプル
【OpenAI Node.js API】Models/Retrieve modelのサンプル
【JavaScript/Node.js】配列の要素を順番に取得する
【OpenAI Node.js API】Models/List modelsのサンプル
Node.jsでJSON返却値を[Object]ではなくフル階層で表示する
【人気の記事】【全部の記事】
進研ゼミチャレンジタッチをAndroid端末化する【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Googleスプレッドシートを編集したら自動で更新日時を入れる
Windows版Google Driveが使用中と言われアンインストールできない場合
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
Androidホームで左にスワイプすると出てくるニュース共を一切表示させない方法
【Javascript】JSON配列内にある特定要素の取得法【Node.js】
【Apache】サーバーに同時接続可能なクライアント数を調整する
Googleスプレッドシートで図形をコピーして使いまわすには
OpenAIのNode.js APIを使用し連続で会話する
【カテゴリーリンク】
Android
iPhone/iPad
Flutter
MacOS
Windows
Debian
Ubuntu
CentOS
FreeBSD
RaspberryPI
HTML/CSS
C/C++
PHP
Java
JavaScript
Node.js
Swift
Python
Amazon/AWS
CORESERVER
Google
仮想通貨
LINE
IBM Watson
Microsoft Azure
Xcode
VMware
MySQL
PostgreSQL
Redis
Groonga
Git/GitHub
Apache
nginx
Postfix
SendGrid
Hackintosh
Hardware
Fate/Grand Order
ウマ娘
将棋