配置ST-GCN体会

本文详细记录了配置SpatialTemporal Graph Convolutional Networks (ST-GCN)环境的过程,包括从GitHub下载代码、安装PyTorch、OpenPose及解决运行示例代码时遇到的错误。特别强调了解决RuntimeError和ValueError的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搞深度学习这东西配环境真的难。总是在达成目标的路上遇到各种错误。

本文仅记录配置环境中的心得。Spatial Temporal Graph Convolutional Networks for Skeleton Based Action Recognition

 论文解读可参考:https://blog.youkuaiyun.com/qq_36893052/article/details/79860328

文章链接:https://arxiv.org/abs/1801.07455

Github 代码:https://github.com/yysijie/st-gcn

第一步:你要从github网站上,下载这个包

第二步:配置环境

安装pytorch参考我的这个博客:https://blog.youkuaiyun.com/Dongjiuqing/article/details/89417616

安装openpose参考我这个博客:https://blog.youkuaiyun.com/Dongjiuqing/article/details/89006405

【注】:openpose要配置caffe和opencv,具体参考博客,这两个必须要弄好。(所以说呢,如果你不需要可视化的openpose界面的话,你不需要看这些博客,也不需要配caffe openpose的环境,你直接下载个pytorch和一些必要的库就可以开始训练和测试了。)

然后FFmpeg和其他依赖项先按照人家给的方法去安装。

第三部:安装和下载模型

到这一步,我都没什么问题,最尴尬的事情来了。从人家的网站上可以看到,这一步之后就是运行示例代码了。然而我卡住了。报了一个很奇怪的错误:看图:

RuntimeError:Errors in loading state_dict for Model:......

百思不得其解。我是直接运行的他的代码:

bash tools/get_models.sh

 这一步卡住了,当时不知道哪里错了。以为是之前的环境配的不对,还是别的什么原因。一头雾水。最后索性直接从头重新配环境,然而到了运行示例代码的时候,还是这个错误。日了。。。于是搁置了一段时间。这个环境就丢在了一遍。过了一周,实在没办法,代码还是要实现 。找了学长的帮助,学长说是模型的问题。于是从下面的百度云盘上下载了那个模型。然后替换掉原来的。这个问题神奇般的解决了!

然而报了下面这么一个错误:

ValueError: No way to determine width or height from video.

我靠!心态崩了啊,有没有,心态崩了啊!一个环境拖了20天还没配好,那个绝望啊。看到报的错误的时候,感觉自己的skvideo或者是ffmpeg有问题。后来查了查,好像确实是有问题。ffmpeg按照github上给的方法安装的版本是1.4,而这个skvideo要求至少是2.8的版本。(一个网站上说的,不知道真的假的。)然后我把用命令安装的ffmpeg卸载了,用源码安装一个4.1.3版本的。具体操作如下。

#卸载github上已安装的版本
pip uninstall ffmpeg    

从这个网站上下载了4.1.3版本:https://ffmpeg.org/download.html

解压之后安装,进入到该文件夹后:

./configure
make
make install

第四部:运行Demo

python3 main.py demo --openpose '/home/sues/Desktop/openpose/build' --video '/home/sues/Desktop/st-gcn-master/resource/media/skateboarding.mp4'  --device 0

感人啊,有没有。配了那么久的环境终于搞好了。

===================================================================================================================================分割线========================================================

补充一下,上面的都是为了演示demo才要配caffe和opencv,openpose,如果只想去训练的话,什么都不需要,直接按照github上操作就ok了,环境就是torch0.4.0,然后该装的装一下就好了。配置文件修改一下就可以训练了。一块1080TI,大概1天左右训练好一个数据集。

 

### ST-GCN 和 AS-GCN 的区别、应用及对比 #### 区别 空间时间图卷积网络(ST-GCN)主要针对具有时空特性的数据设计,能够有效处理动态变化的数据结构。这类模型通常应用于视频动作识别等领域,在这些场景下,节点不仅代表静态实体,还携带随时间演变的信息[^1]。 另一方面,自适应图卷积网络(AS-GCN)则专注于解决传统GCN中预定义邻接矩阵带来的局限性。通过引入注意力机制或其他方法来自适应地学习每层的最佳连接模式,使得该类算法可以在不依赖于输入图结构的情况下工作良好,并能更好地捕捉不同任务下的特征表示[^2]。 #### 应用场景 对于ST-GCN而言,由于其擅长处理带有时间和空间维度的任务,因此非常适合用于人体姿态估计、交通流量预测以及社交网络传播分析等方面的应用程序开发;而AS-GCN因其灵活性和强大的表达能力,则更适用于那些难以预先确定理想拓扑关系的情况,比如推荐系统中的用户偏好建模或是生物信息学里基因调控路径的研究等场合[^3]。 #### 对比 当考虑两者之间的差异时,可以发现它们各自侧重不同的方面来改进标准形式的GCN- **架构特性**:ST-GCN强调对序列化事件的时间顺序敏感度,利用多尺度聚合策略增强局部与全局上下文感知力;相比之下,AS-GCN聚焦于优化内部交互方式,借助软分配方案实现更加精准的关系权重调整。 - **适用范围**:前者倾向于连续型且存在明显周期规律的现象模拟;后者则适合离散对象间复杂关联挖掘,尤其是在缺乏明确指导先验知识的前提下表现尤为突出。 ```python # 示例代码片段展示如何加载两个框架的基础库 import st_gcn as stg # 假设这是ST-GCN的一个Python包 from as_gcn import AdaptiveGraphConvLayer # 同样假设这是AS-GCN的一部分接口 # 创建实例并初始化参数... st_model = stg.ST_GCN(input_channels=3, num_class=60) as_layer = AdaptiveGraphConvLayer(in_features=16, out_features=32) print("ST-GCN Model:", st_model) print("AS-GCN Layer:", as_layer) ```
评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜也想当卷王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值