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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

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

Python

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

Q&A

0回答

518閲覧

変数メモリーエラーの解決法についての質問

eoh

総合スコア13

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

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

Python

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

0グッド

1クリップ

投稿2020/10/24 15:35

編集2020/10/25 09:57

大学の研究でJupyter Notebookを使ってPythonプログラムを動かしているのですが,詳しい方に聞きたいことができたので質問させていただきます.

プログラムを動かすと一定時間後にPCが落ちてしまうという問題が起こりました.
調べてみるとある変数のメモリーが膨大になってしまい落ちてしまうということがわかりました.(参考サイト→ https://qiita.com/AnchorBlues/items/883790e43417640140aa)

しかしこの変数は後の処理で使うために必要なので,対処方法を知っている方おりましたらご教授お願いします.

ここからは憶測で,まだ試していないのですが,もしかして単純に変数に保管せず,外部のファイルに保存し,あとで呼び出せば良かったりしますか?

[追記]

イメージ説明

リスト内の要素数が上の数式に従います.
例えば,n=13では8192となります.
n=23(要素数:8388608)ではリスト内の要素数が膨大となり,メモリエラーを吐いてしまいます.

Python3

1def ps_j(folder_path,target_layer): 2 # import文省略 3 g_pearson = {} 4 g_spearman = {} 5 6 for i in range(len(target_layer)): 7 for layers in list(itertools.combinations(target_layer,i+1)): 8 layers = list(layers) 9 double_calc(folder_path, "temp_layer", layers) 10 g_pearson["{}".format(','.join(layers))],g_spearman["{}".format(','.join(layers))] = all_calc(folder_path,"temp_layer",["./{}/experiment/幾何平均/{}.json".format(folder_path,"temp_layer")],["{}.json".format("temp_layer")]) 11 return g_pearson, g_spearman 12 13 14target_layer = ['conv_1','conv_2', ..., 'conv_n'] 15folder_path = "mobilenet/202010221843" 16ps, ss = ps_j(folder_path, target_layer) 17

【関数の概要】
double_calc:数値が羅列されたjsonファイルが作られる.戻り値はなし.
all_calc:戻り値はjsonファイルをもとにtarget_layerで指定された層の計算結果.

target_layer内のnが大きいほど,ps_j()内にあるg_pearson,g_spearmanの要素数が大きくなり,メモリエラーとなってしまいます.なにか解決方法がございましたらご教授お願いします.

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

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

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

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

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

toast-uz

2020/10/24 15:46

とある変数がどうなっているかと、後でどう使うか次第なので、それらのコードを提示いただくようお願いします。そこまで膨大ではない変数が何かの手違いで膨大になっている可能性もあります。そもそも膨大な変数が後の処理で必要であれば、当面対処できたとしても、後の処理の時にPCは落ちてしまいます。
meg_

2020/10/24 18:06

> 一定時間後にPCが落ちてしまうという問題が起こりました. 通常、pythonスクリプトがメモリーエラーを起こしてもマシンが落ちることはないとの認識ですが、本当に上記が起きたのでしょうか?
bsdfan

2020/10/25 14:44

PCが落ちるとなると、計算負荷での熱暴走など、ハードの要因も調べた方がいいかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問