神经网络迭代时,在forward中可视化中间特征,用到Image库。(其实pytorch的transform库也可以)
将形状为(b,c,h,w)的Tensor可视化为图像的具体步骤:
- 选取每个batch的第一张图像进行可视化
- 考虑经过卷积后,中间的特征层维度较高,只可视化前10维
- 对每一维:均值归一化,再变换回自然图像,Image库保存到本地
1 | # feature_map:Tensor(b,c,h,w) |
在模型的forward
中加入此函数即可。
(注:在Mindspore中试验过,不确定pytorch中取feature_map[0]会不会自动降一维,待补充。)
实际使用中,我加入时间戳标记这一组图片。
1 | def forward(self, x): |
1 | def visualize(feature_map, loc, time_tuple): |
绘图所用函数,用到matplotlib:
1 | import matplotlib.pyplot as plt |
效果: