CNNの中間にあるConv層を抜いたチャネルが2048枚、形状は(7,7,2048)になります。全チャネルの合計値を計算する際、1画像ならできるのですが、複数枚(例、8画像(8,7,7,2048))になると方法がわかりません。
データ形状とコード
python/keras
1print(layer_outputs.shape) #(8,7,7,2048) 2 3#形状指定後、h,wをゼロでパディングします。 4h, w, ch = layer_outputs.shape[1:] 5res = np.zeros((h,w)) 6 7#1画像なら下記で抽出できます 8for i in range(ch): 9 img_res = layer_outputs[0,:,:,i] #0番目 10 res = res + img_res 11 12#複数画像での試行 13lst = [] 14 15for i in range(ch): 16 for n in range(len(layer_outputs)): 17 img_res = layer_outputs[n,:,:,i] 18 res = res + img_res 19 lst.append(res) 20 21#結果は16384(8*2048)と画像数別になりません。 22np.array(lst).shape #(16384, 7, 7) 23
他にも
img_res = layer_outputs[n,:,:,i]を img_res = layer_outputs[n][:,:,i] で試行してみましたが、結果は上記と同じでした。
希望する形状は(8,7,7)になります。
どのようにすれば、画像別に合計値を算出できるのでしょうか。
ご教示頂ければ幸甚です。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。