代码(resnet3D):
https://github.com/kenshohara/3D-ResNets-PyTorch
坑:
1 ucf-101 的链接失效,后面找了个新的:
https://www.crcv.ucf.edu/research/data-sets/ucf101/
2 开始我的python是3.6, 结果执行生成json文件的脚本时,提示没有capture_output这个key: 出错代码如下,subprocess是python的一个包,后面查了下,说python3.7才加入了这个属性
p = subprocess.run(ffprobe_cmd, capture_output=True)
3 使用数据集hmdb51,有些rar包在ubuntu上解压失败,这种情况以前也有,还不知道怎么处理
4 然后那个视频文件我是avi结尾的,他去找jpg文件时也按照这个avi文件为目录去找。结果我要把去掉这个avi字段,然后把图片放在视频文件同目录里面
5 跑了一个epoch后,提示说啥只能建立一个child procress.似乎搞的什么多线程,pycharm 跑有问题,只能在命令行下面跑
基于如下代码(somethinsomething)生成grad-cam热力图
1 主文件
https://github.com/TwentyBN/smth-smth-v2-baseline-with-models
2 热力图生成主要代码
https://github.com/TwentyBN/smth-smth-v2-baseline-with-models/blob/master/notebooks/get_saliency_maps_CAM.ipynb
主要遇到一个问题是,resnet3D的layer4的输出是512,1,4,4。而输入的切片个数是16. 这样将特征图反向叠加到原图时只用了1个特征图,这样所有的切片的热力图都一样的。将网络修改输出为512,8,4,4之后,16个切片就有8个不同的热力图,但有前后两张图是共用的一张特征图。