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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

メモリリーク

メモリリークは、プログラムファイルがメモリの解放に失敗した時に起こります。

機械学習

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

Python

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

Q&A

3回答

6413閲覧

GPU上の学習速度が(仮想メモリの爆発的増加に伴い)急激に低下する問題について

退会済みユーザー

退会済みユーザー

総合スコア0

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

メモリリーク

メモリリークは、プログラムファイルがメモリの解放に失敗した時に起こります。

機械学習

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

Python

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

0グッド

0クリップ

投稿2018/07/05 14:03

編集2018/07/24 11:38

GPU(Ubuntu)を用いてディープラーニングを試しています。

直面している問題は、そのスピードについてです。

5万ステップくらいの学習を行うつもりなのですが、最初の500ステップくらいを超えたあたりから、急激にスピードが落ちてしまいます。1秒に3,4ステップだったものが、1秒1ステップくらいになってしまいます。

どのようなことが原因だと思われますか?

申し訳ないのですが、プログラムや環境については、記載できないです。
あくまで、推測で考えられる原因を教えてください。

追記
プログラム内に適宜、現在の時刻を示しつつ、topコマンドでメモリを確認してみました。
すると、仮想メモリが物理メモリの2倍くらい(物理メモリ16GB)になっていました。
2倍なったタイミングの時刻から、原因を探ってみると、VGG16()にたどり着きました。
懸念されることとして、VGG16のh5ファイルをGPU上でタイムアウトしてダウンロードできなかったため、別のPC(CPU)上でダウンロードしたものを使っていることがあります。
これは関係しているでしょうか?タイムアウトしないようにするには、どうすればよいでしょうか?

さらに追記

GoogleColaboratoryにて同じプログラムを動かし、topコマンドにてメモリを監視しました。
すると、同じように仮想メモリが35gなどとなっていました。
実行後、ほんの数秒で一気に大きくなる感じでした。

どこに問題があるのか、探りたいのですが、どうすればよいのかわかりません。
仮想メモリが爆発的に増える原因を見つけるために、できることには何がありますか?

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

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

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

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

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

guest

回答3

0

  • メインメモリがswapした
  • GPUのメモリがあふれておかしなことになっている
  • CPUのサーマルプロテクションが作動した
  • GPUのサーマルプロテクションが作動した
  • (ファイルから動的にデータを読み込みながら走らせているなら)ストレージのサーマルプロテクションが作動した

投稿2018/07/05 14:06

編集2018/07/05 14:07
hayataka2049

総合スコア30933

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

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

退会済みユーザー

退会済みユーザー

2018/07/24 11:41

googlecolaboratoryに変えましたが。問題が発生しています。何がいけないのか、いつ問題が生じるのかを調べるにはどうすればよいのでしょうか?
hayataka2049

2018/07/25 00:48

メモリ消費が劇的に増大したときにどんな処理が行われているのか特定してください あちこちにprint入れて、メモリ消費とどこまで処理が進んでいるか表示させてみるとか
guest

0

  • メモリをリークさせながらやっていない限りswapはないと願いたいです。

top/htopで監視してみてはいかがですか?

  • Jupyterとかなら表示を出しすぎると、画面でメモリ食いすぎて死んだりします。
  • 熱がこもって速度がガタ落ちするのはよくあることです。

nvidia-smiで温度を監視したり、上限を設定してみてください。

  • まさかそんなトリッキーなことをやっていないと思いますが、バッチサイズを下げならが学習していると、遅くなっていきます。

http://forums.fast.ai/t/change-batch-size-during-training/7947/20

  • 損失関数などはどう変化していますか?

nanになってたりするとオーバーフローが起きたか、なにかよからぬことがあったのかもしれません。

  • 何もかけないのでは仕方ないのですが、環境を専有していますか?

他のプロセス走っていませんか?
仮想環境ならありえますし、Symantecが発動してディスクIOを100%にしてしまうこともあります。

投稿2018/07/05 15:58

mkgrei

総合スコア8560

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

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

退会済みユーザー

退会済みユーザー

2018/07/24 11:41

topで問題を確認し、googlecolaboratoryに変えました。しかし、相変わらず問題が発生しています。何がいけないのか、いつ問題が生じるのかを調べるにはどうすればよいのでしょうか?
mkgrei

2018/07/24 12:19

コールバック関数を何か使っていますか?
退会済みユーザー

退会済みユーザー

2018/07/24 13:00

コールバック関数は使っていません
退会済みユーザー

退会済みユーザー

2018/07/25 00:40

使ってないです
guest

0

I think, callbacks issue,
or may be memory leakage

投稿2018/07/05 16:41

AliHassan

総合スコア351

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

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

退会済みユーザー

退会済みユーザー

2018/07/24 11:39

どうすればどのタイミングでメモリリークしているのかを確認できますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問