web-dev-qa-db-ja.com

Jupyter Notebook(のみ)メモリエラー、同じコードが従来の.pyで実行されて機能する

私はディープラーニングクラスの割り当てがあり、それらはベースコードとしてJupyterノートブックを提供します。問題は、データのインポートと再形成を実行した後、「メモリエラー」を介してjupyterノートブックを分析した後、通常の.pyファイルの同じコードで、すべてが正常に実行されます。

問題は、Jupyterノートブックを開発のベースとして使用することを(できれば)要求されることです。

<ipython-input-2-846f80a40ce2> in <module>()
  2 # Load the raw CIFAR-10 data
  3 cifar10_dir = 'datasets\\'
----> 4 X, y = load_CIFAR10(cifar10_dir)

C:\path\data_utils.pyc in load_CIFAR10(ROOT)
     18     f = os.path.join(ROOT, 'cifar10_train.p')
     19     print('Path:  ' + f );
---> 20     Xtr, Ytr = load_CIFAR_batch(f)
     21     return Xtr, Ytr
     22 

C:\path\data_utils.pyc in load_CIFAR_batch(filename)
     10         X = np.array(datadict['data'])
     11         Y = np.array(datadict['labels'])
---> 12         X = X.reshape(-1, 3, 32, 32).transpose(0,2,3,1).astype("float")
     13         return X, Y
     14 

MemoryError: 

エラーは12行目で発生し、メモリを消費する割り当てであることがわかりますが、4 GBのRAMで十分ではないことを意味するわけではなく、コードが外部で問題なく実行されたときに確認されました。ジュピター。

私の推測では、JupyterまたはChromeのいずれかによるメモリ制限と関係がありますが、それを解決する方法がわかりません。

ところで:

  • 4GBのRAMを搭載したWindows 10ラップトップを持っています
  • およびChromeバージョン57.0.2987.133(64ビット)
9
Danfoa

管理者権限で実行してみてください。私のために働いた。

1
Andriy Stolyar

どうやら、これはpythonのインストールが最適でない場合に発生します。

実際問題を解決する前に、私は手動でWindowsにインストールしていたpython 2.7と必要なパッケージ、問題が何であるかを理解するためにほぼ2日間混乱させた後、再インストールしました。コンダとすべての問題が解決されました。

Condaはより優れたメモリ管理パッケージをインストールしていると思います。それが主な理由でした。

1
Daniel Ordoñez

私はこの質問に1年と2か月遅れています。理由に関する技術的な答えは、ここで本当にうまく説明されています: https://superuser.com/questions/372881/is-there-a-technical-reason-why-32-bit-windows-is-limited- to-4gb-of-ram

また、condaソリューションが機能する理由も示しています。

しかし、怠惰なエンジニアの変更なしの回避策の場合、Chromeタブは絶対に必要ではありませんが閉じて、カーネルを再起動して、新しく開始するようにします。

Kernel > Restart (& Run All)
0
Lefty G Balogh

.npyファイルの読み込み中に、同様のことが起こりました。解放RAM問題が解決しました。ファイルを変数にロードするのに十分なメモリがありませんでした。実際、Firefoxとchromeの両方がシステムで実行されていました。 Firefoxを閉じると問題が解決しました。

便利なコマンド:free -h注意事項:このコマンドを自分で解釈する前に。このページにアクセスすることを強くお勧めします: https://www.linuxatemyram.com/

0
Delsilon