项目场景:
需要将模型中某层输出的中间特征图矩阵以及特征向量打印成图片。这里使用Matplotlib库将矩阵以及向量转换成图片输出:
def normalization(data): # NORMALIZE TO [0,1]
_range = np.max(data) - np.min(data)
data = (data - np.min(data)) / _range # [0,1]
return data
def fm_vis(feats, save_dir, save_name):
save_dir = os.path.join(save_dir, save_name)
if not os.path.exists(save_dir):
os.makedirs(save_dir)
feats = normalization(feats[0].cpu().data.numpy())
for idx in range(min(feats.shape[0], 8)): #CHANNLE NUMBER
fms = feats[idx, :, :]
plt.imshow(fms)
plt.savefig(os.path.join(save_dir, save_name + '_' + str(idx) + ".png"))
问题描述
中间层输出的特征向量的打印结果有误,这里特征向量的维度是[1,8,1,1],得到以下结果: