質問編集履歴

1

もう少し詳しく書き直しました

2020/10/25 09:57

投稿

eoh
eoh

スコア13

test CHANGED
File without changes
test CHANGED
@@ -13,3 +13,69 @@
13
13
 
14
14
 
15
15
  ここからは憶測で,まだ試していないのですが,もしかして単純に変数に保管せず,外部のファイルに保存し,あとで呼び出せば良かったりしますか?
16
+
17
+
18
+
19
+ [追記]
20
+
21
+
22
+
23
+ ![イメージ説明](54dd544ede7e1904f3e6c2ff4d7b5708.png)
24
+
25
+ ---
26
+
27
+ リスト内の要素数が上の数式に従います.
28
+
29
+ 例えば,n=13では8192となります.
30
+
31
+ n=23(要素数:8388608)ではリスト内の要素数が膨大となり,メモリエラーを吐いてしまいます.
32
+
33
+
34
+
35
+ ```Python3
36
+
37
+ def ps_j(folder_path,target_layer):
38
+
39
+ # import文省略
40
+
41
+ g_pearson = {}
42
+
43
+ g_spearman = {}
44
+
45
+
46
+
47
+ for i in range(len(target_layer)):
48
+
49
+ for layers in list(itertools.combinations(target_layer,i+1)):
50
+
51
+ layers = list(layers)
52
+
53
+ double_calc(folder_path, "temp_layer", layers)
54
+
55
+ 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")])
56
+
57
+ return g_pearson, g_spearman
58
+
59
+
60
+
61
+
62
+
63
+ target_layer = ['conv_1','conv_2', ..., 'conv_n']
64
+
65
+ folder_path = "mobilenet/202010221843"
66
+
67
+ ps, ss = ps_j(folder_path, target_layer)
68
+
69
+
70
+
71
+ ```
72
+
73
+ 【関数の概要】
74
+
75
+ double_calc:数値が羅列されたjsonファイルが作られる.戻り値はなし.
76
+
77
+ all_calc:戻り値はjsonファイルをもとにtarget_layerで指定された層の計算結果.
78
+
79
+
80
+
81
+ target_layer内のnが大きいほど,ps_j()内にあるg_pearson,g_spearmanの要素数が大きくなり,メモリエラーとなってしまいます.なにか解決方法がございましたらご教授お願いします.