私はディープラーニングクラスの割り当てがあり、それらはベースコードとして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のいずれかによるメモリ制限と関係がありますが、それを解決する方法がわかりません。
ところで:
管理者権限で実行してみてください。私のために働いた。
どうやら、これはpythonのインストールが最適でない場合に発生します。
実際問題を解決する前に、私は手動でWindowsにインストールしていたpython 2.7と必要なパッケージ、問題が何であるかを理解するためにほぼ2日間混乱させた後、再インストールしました。コンダとすべての問題が解決されました。
Condaはより優れたメモリ管理パッケージをインストールしていると思います。それが主な理由でした。
私はこの質問に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)
.npyファイルの読み込み中に、同様のことが起こりました。解放RAM問題が解決しました。ファイルを変数にロードするのに十分なメモリがありませんでした。実際、Firefoxとchromeの両方がシステムで実行されていました。 Firefoxを閉じると問題が解決しました。
便利なコマンド:free -h
注意事項:このコマンドを自分で解釈する前に。このページにアクセスすることを強くお勧めします: https://www.linuxatemyram.com/ 。