2017-01-31 10 views
3

ケラス層の出力マップまたはフィーチャマップがありますが、これを表示できる画像(3D numpy配列)に変換するにはどうすればいいですか?ケラス層出力から画像(3D numpy配列)への1D numpy配列の変更方法

model = VGG16(weights='imagenet', include_top=True) 
layer_outputs = [layer.output for layer in model.layers[1:]] 
print layer_outputs 
viz_model = Model(input=model.input, 
        output=layer_outputs) 
features = viz_model.predict(x) 

output = features[0] #has shape (1,224,224,64) 

ご意見やご提案をいただければ幸いです。ありがとうございました。各1を反復処理しているときは、サブプロットとして、各特徴マップを追加することができます

答えて

3

あなたにこのようなもの(私の場合は、単にノイズ)与える
import numpy as np 
import matplotlib.pyplot as plt 
from pylab import cm 

m = np.random.rand(1,224,224,64) 

fig = plt.figure() 
fig.suptitle("Feature Maps") 

for j in range(m.shape[3]): 
    ax = fig.add_subplot(8, 8, j+1) 
    ax.matshow(m[0,:,:,j], cmap=cm.gray) 
    plt.xticks(np.array([])) 
    plt.yticks(np.array([])) 

plt.show() 

enter image description here

+0

これは完璧なソリューションです!十分にあなたに感謝することはできません:) – matchifang

関連する問題