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

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

新規登録して質問してみよう
ただいま回答率
85.46%
機械学習

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

Python

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

Q&A

解決済

1回答

7921閲覧

CNN学習時のエラー「Allocation of 536870912 exceeds 10% of system memory.」について

kanasa

総合スコア2

機械学習

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

Python

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

0グッド

0クリップ

投稿2020/07/31 13:54

前提・実現したいこと

pythonでautoencoderを使った機械学習を試しています。
その際下記のように、エラーが4行ほど出てきた後に学習が始まるのですが、このエラーを無視した状態で学習を進めて正常にな結果は望めるのでしょうか。
エラー内容は、調べたところメモリ不足らしいのですが、それを無視して学習は強行されるものなのでしょうか。
また、学習パラメータは256x256の画像を1000枚、バッチサイズ64で実行しています。Total paramsは48003でした。pcの搭載メモリは8GBです。バッチサイズを32に落とせばエラーは出ないのですが、1000枚の画像に対して32のバッチサイズは適切なのでしょうか。

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

Epoch 1/30 2020-07-31 22:31:51.759254: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 536870912 exceeds 10% of system memory. 2020-07-31 22:31:52.847797: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 536870912 exceeds 10% of system memory. 2020-07-31 22:31:53.305529: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 536870912 exceeds 10% of system memory. 2020-07-31 22:31:57.743346: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 536870912 exceeds 10% of system memory. 2020-07-31 22:32:01.507355: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 536870912 exceeds 10% of system memory. 128/1000 [==>...........................] - ETA: 4:48 - loss: 1.0092

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

体感的にバッチサイズは大きければ大きいほどゆらぎが少なくなり結果が良くなるように私は感じています。しかし、表示されているワーニングメッセージの意味することは、「GPUのメモリを全て使い切っているうえに、データがGPUに収まらないからPC本体のRAMをたくさん消費しているよ。」というニュアンスです。下図は私のPCに搭載されている GPU GTX1070 の搭載RAMの消費状況と PCのRAM の消費状況ですが、 GPUは8119MB中262MB を使用しています。トレーニング実施時には 8000MB ほどまで消費量が上昇することは普通にありますが、消費量が大きくなるとPCのRAMとGPUのRAMの間でのデータの転送に時間が掛かるようになり学習時間が長くなる傾向があります。GPUのRAMをオーバーフローした状態でもトレーニングは正常に終わりますが、PC側のRAMとSWAP領域を全て使い切ると Out of Memory というエラーが表示されて学習が中断してしまいます。メモリの使用状況をしばらくウォッチして、 PCのRAM+SWAPとGPUのRAMを全て使い切らない程度にバッチサイズを調整したほうが良いと思います。ご参考になれば幸いです。
nvidia-smi

投稿2020/08/01 12:45

編集2020/08/01 12:49
PINTO

総合スコア351

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

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

kanasa

2020/08/02 00:15

分かりやすい回答をありがとうございます。 私が使用しているのはGPU未搭載のノートパソコンなのですが、それでも正常に学習してくれるのでしょうか。
PINTO

2020/08/02 00:36

とても時間が掛かると思いますが、 学習を継続してみて `Out of Memory` が発生しなければ問題ないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問