質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

0回答

1074閲覧

ワークステーションとサーバーでのKeras計算結果差異について

Hagasuke

総合スコア8

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/02/05 06:03

編集2020/02/05 08:31

質問内容

業務でkerasを用いて作成したAIの検証を行っております。
普段はWindowsが入ったPCで、Spyderを用いて動作を確認しているのですが、
ハイパーパラメータの調整は処理速度やメモリ容量の大きい、
Linuxサーバーで行いたいと考えております。
それぞれの開発環境の詳細は別記いたします。

まず、各開発環境で学習結果がある程度一致するのかを検証したところ、
計算結果が合わず困っています。
Windows導入PCではTrain Accuracyが常に100%に達するのに対し、
まったく同じハイパーパラメータを用いても、サーバー上では
100%に達せず、lossもあまり低くなりません(詳細別記)。

GPUでの計算の場合、CPUとは異なり計算結果にばらつきが生じるのは
把握しているのですが、今回の場合はGPUの計算結果のばらつきとしては
計算結果の差異が大きく、OSによる表記の違いやGPUの処理の差、
ライブラリのバージョン差異が原因なのではないかと思い、
質問させていただいております。

検証済みの項目

・教師データの中身(train, validation, testの分割前)
⇒入力、出力ともに内容と順番に差がないことを確認しています

・ResNet50の初期重みと重み固定階層数について
⇒今回のデータでは転移学習を行っていますが、
どちらも差がないことを確認しています

・random_stateを変更した場合の結果の確認
⇒各random_stateの値で繰り返し検証しましたが、
Windowsではtrain Accuracyが100%に到達するのに対し、
Linuxの場合は到達しません
⇒また、test Accuracyとtest F1 Scoreの値も
Linuxのほうが性能が低くなる傾向にあります
※まれにWindowsの平均値程度の精度になります

・GPUの演算精度
⇒cudaの設定ファイルから、いずれの環境も単精度であることを確認しています

開発環境

【Windows】
・OS: Windows 7
・GPU: Quadro K2200
・python ver.: 3.7
・tensorflow-gpu ver.: 2.0.0
・keras ver.: 2.3.0
・cuda ver.: 10.0
・cuDNN ver.: 7.6.4

【Linux】
・OS: Ubuntu 16.04.6
・GPU: Tesla P100
・python ver.: 3.6
・tensorflow-gpu ver.: 1.10.0
・keras ver.: 2.2.4
・cuda ver.: 8.0
・cuDNN ver.: 7.1.3

※cudaの設定ファイルを確認したところ、
どちらも単精度で計算しているようでした。

計算結果(Windows)

python

1Epoch 1/10 274/74 [==============================] - 149s 2s/step - loss: 0.9574 - accuracy: 0.8855 - val_loss: 2.2975e-04 - val_accuracy: 0.8974 3Epoch 2/10 474/74 [==============================] - 104s 1s/step - loss: 0.0658 - accuracy: 0.9885 - val_loss: 0.0041 - val_accuracy: 0.9043 5Epoch 3/10 674/74 [==============================] - 106s 1s/step - loss: 0.0052 - accuracy: 0.9983 - val_loss: 0.0757 - val_accuracy: 0.9162 7Epoch 4/10 874/74 [==============================] - 106s 1s/step - loss: 0.0024 - accuracy: 0.9996 - val_loss: 0.0168 - val_accuracy: 0.9179 9Epoch 5/10 1074/74 [==============================] - 104s 1s/step - loss: 6.7991e-04 - accuracy: 0.9996 - val_loss: 0.0287 - val_accuracy: 0.9197 11Epoch 6/10 1274/74 [==============================] - 104s 1s/step - loss: 0.0011 - accuracy: 0.9996 - val_loss: 0.0283 - val_accuracy: 0.9145 13Epoch 7/10 1474/74 [==============================] - 104s 1s/step - loss: 5.7834e-05 - accuracy: 1.0000 - val_loss: 0.0363 - val_accuracy: 0.9145 15Epoch 8/10 1674/74 [==============================] - 104s 1s/step - loss: 3.0421e-05 - accuracy: 1.0000 - val_loss: 0.0424 - val_accuracy: 0.9179 17Epoch 9/10 1874/74 [==============================] - 104s 1s/step - loss: 2.3539e-05 - accuracy: 1.0000 - val_loss: 0.0457 - val_accuracy: 0.9197 19Epoch 10/10 2074/74 [==============================] - 104s 1s/step - loss: 1.9657e-05 - accuracy: 1.0000 - val_loss: 0.0470 - val_accuracy: 0.9197 21 22Confusion Matrix 23[[ 3 0 0 0 0 0 0 0] 24 [ 0 3 6 0 3 1 0 0] 25 [ 0 0 379 13 1 2 3 0] 26 [ 0 0 20 116 0 0 0 0] 27 [ 0 0 2 0 16 1 0 0] 28 [ 0 0 1 0 0 127 0 0] 29 [ 0 0 5 0 0 0 18 0] 30 [ 0 0 5 0 1 4 1 1]] 31Accuracy: 0.9057377049180327 32F1 Score: 0.7373773610334277 33

#計算結果(Linux)

python

1 2Epoch 1/10 374/74 [==============================] - 27s 367ms/step - loss: 1.7438 - acc: 0.8561 - val_loss: 1.3710 - val_acc: 0.8735 4Epoch 2/10 574/74 [==============================] - 13s 175ms/step - loss: 1.3950 - acc: 0.9080 - val_loss: 1.5985 - val_acc: 0.8718 6Epoch 3/10 774/74 [==============================] - 13s 173ms/step - loss: 1.3462 - acc: 0.9131 - val_loss: 1.9494 - val_acc: 0.8325 8Epoch 4/10 974/74 [==============================] - 13s 173ms/step - loss: 1.3000 - acc: 0.9148 - val_loss: 1.5667 - val_acc: 0.8650 10Epoch 5/10 1174/74 [==============================] - 12s 169ms/step - loss: 1.2612 - acc: 0.9198 - val_loss: 1.7137 - val_acc: 0.8547 12Epoch 6/10 1374/74 [==============================] - 13s 170ms/step - loss: 1.2536 - acc: 0.9211 - val_loss: 1.4512 - val_acc: 0.8889 14Epoch 7/10 1574/74 [==============================] - 13s 173ms/step - loss: 1.2445 - acc: 0.9228 - val_loss: 1.3925 - val_acc: 0.8923 16Epoch 8/10 1774/74 [==============================] - 13s 173ms/step - loss: 1.2445 - acc: 0.9228 - val_loss: 1.3834 - val_acc: 0.8923 18Epoch 9/10 1974/74 [==============================] - 13s 169ms/step - loss: 1.2445 - acc: 0.9228 - val_loss: 1.3816 - val_acc: 0.8923 20Epoch 10/10 2174/74 [==============================] - 13s 174ms/step - loss: 1.2445 - acc: 0.9228 - val_loss: 1.3805 - val_acc: 0.8923 22 23Confusion Matrix 24[[ 0 0 3 0 0 0 0 0] 25 [ 0 0 6 0 6 1 0 0] 26 [ 0 0 367 28 1 2 0 0] 27 [ 0 0 1 135 0 0 0 0] 28 [ 0 0 2 0 16 1 0 0] 29 [ 0 0 0 0 0 128 0 0] 30 [ 0 0 22 0 0 1 0 0] 31 [ 0 0 2 0 4 6 0 0]] 32Accuracy: 0.8825136612021858 33F1 Score: 0.4342272827861494 34

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問