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

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

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

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

6034閲覧

Pytorchで計算結果がマシンごとに変わってしまいます

santaro3

総合スコア0

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/10/02 02:32

前提・実現したいこと

PytorchのLSTMを使った機械学習をしています。

いくつかのmacがあり、ハードウェアも異なればosバージョン等も若干異なってますが
状況からそれとは違う何かが起きている気がしています。
学習量が少ない場合は、どのマシンで計算しても
小数点以下全てで結果が完全一致しています。

しかし、学習量を増やすと計算途中で結果が変わってきてしまいます。

発生している問題・エラーメッセージ

計算途中でのエラーは発生していません。
学習量を増やしたとき、最初の数エポックでは
LSTMの予測結果は小数点以下含めて完全一致しているのですが
そのまま計算を続けると、ある同じエポックのタイミングで、
全てのマシンで同時に結果がズレはじめます。

該当のソースコード

すみません、どの部分になんの問題があるのか現在は不明です。。

試したこと

少量の学習量でPytorchのLSTM。全てのmacで結果が完全一致で問題は起きません。
学習量を2倍に増やして同じ計算。最初の数エポックまでは結果が完全一致で、
あるタイミングのエポックで、同時に全mac で結果がズレてきます。

なんらかのオーバフローが起きているとか、もしくはpytorchでこのような現象が起きたときに
何か対策することはあるのでしょうか?

補足情報(FW/ツールのバージョンなど)

1台だけpytorch 1.5.1で残りは1.6.0です。
同じ 1.6.0でもここに書いた状況が発生します。
ハードウェアやosバージョン,python環境は細かくなるので記載しませんが
もしそれが必要でしたら記載します。

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

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

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

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

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

aokikenichi

2020/10/02 03:39 編集

「すみません、どの部分になんの問題があるのか現在は不明です。。」 それだからこそ質問なさっているのではないでしょうか。 コードも環境も示さないで「なんの問題があるのか現在は不明です。。」と言われても がんばって解明してくださいとしか、、、 一般論としては、「そういうもの」じゃないかと思うのですが 完全一致させることが必須なのでしょうか? 乱数、桁落ち、ライブラリによっては計算ロジックを一部変えている場合も みたいなところかなと思います
tiitoi

2020/10/02 04:04

CPU 実行でしょうか? GPU 実行であれば、演算結果が多少ずれるのは、GPU の特性上そういうものという認識です。
santaro3

2020/10/02 04:22

ご回答ありがとうございます。 titoiさま。すべてCPUで実行しております。 いろいろコードをみてますが、なんせ膨大な量があって、ですので こういう現象というのはありえることなのか、それとももしこの現象があったとしたら結果は信用できないのか、というところが気になっています。 aokikenichiさんに、ありえるということなので少し安心してきてはいます。
santaro3

2020/10/02 04:36 編集

漠然とした質問にお答えいただきまして、ありがとうございました。 (randomについては初期ははしていまして、同じマシンで実行すれば毎回同じ結果は得られています。) 全くあり得ないことでは無い、ということを伺えましたので、それを前提に 調べていきたいと思います。どうもありがとうございました!
guest

回答1

0

自己解決

aokikenichiさま、tiitoiさま ありがとうございました。
焦って結果の値のみを比較してましたが落ち着いて内部処理の
テンソルの値まで調べました。すると最初の頃は一致していますが
しばらく計算が進むと微妙にずれ行っているのが分かりました。
何かのバグというよりは、桁落ちなどの誤差が関係しているような
そういう微妙なズレ方をしていました。 randomを初期化していても環境によっては
結果は変わるというのがわかりました。ありがとうございました。

投稿2020/10/02 05:36

santaro3

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問