win10 ST-GCN复现

win10 ST-GCN复现

下载源码

https://github.com/yysijie/st-gcn

安装requirements

1.anaconda切换python环境
命令为 conda activate 环境名,如:

conda activate pytorch1.4

2.安装requirements

cd /d F:
cd st-gcn	//切换到st-gcn目录下,win10可能要以管理员模式开启cmd
cd torchlight
python setup.py install
cd ..
pip install -r requirements.txt

提示安装失败,于是一个一个安装packge(之前安装过pytorch)

conda install pyyaml
conda install argparse
conda install numpy
conda install h5py
conda install opencv-python
conda install imageio
conda install scikit-video

安装opencv-python时出现问题,于是自己在清华镜像源下载本地安装包(这里要和python的版本对应),我是python3.6下载的opencv_python-3.4.1.15-cp36-cp36m-win_amd64.whl

下载完成以后用pip install 安装包路径名安装opencv

pip install F:/opencv_python-3.4.1.15-cp36-cp36m-win_amd64.whl

下载数据集

这里使用的ntu-rgbd数据集, 百度云版本的可以在这里下载,https://github.com/Hrener/3D-Action-recognition

将Raw数据集处理为ST-GCN的输入

python tools/ntu_gendata.py --data_path
为Raw_skeleton/skeleton+D0-30000解压后的目录路径

python tools/ntu_gendata.py --data_path F:\skeleton+D0-30000

处理完成
在st-gcn/data/目录下可找到处理后的数据

训练模型

训练前遇到的一些的bug

F:\st-gcn>python main.py recognition -c config/st_gcn/ntu-xsub/train.yaml

出现错误 RuntimeError: CUDA error: invalid device ordinal,发现源码中有4个gpu,将train.yaml中的device=[0,1,2,3]改为device=[0]
出现错误 BrokenPipeError: [Errno 32] Broken pipe,将processor.py下的函数load_data中的两个DataLoader()函数的参数num_workers设置为0,避免使用多线程读取数据
出现错误 cuda runtime error (2) : out of memory, 经过尝试,4G显存将batch_size设置为8时(在config下的train.yaml中设置),显存占用率刚好接近100%

中途暂停

由于电脑不能一直开着,训练一个epoch要接近一个小时的时间,源码中num_epoch设置为80,想一次训练完不太可能。读源码时发现代码有提供训练中途保存模型的功能,可以在train.yaml文件中进行如下修改

start_epoch = 0	//这里填写上次训练中断时的epoch,如果上次训练了5个epoch(0,1,2,3,4),那么再次训练的时候填5即可
save_interval = 1	 //源码是时10个epoch保存一次模型参数weights,我设置为1
weights = model_path //这里填写最近一个epoch保存的model_weights.pt文件的路径,如果不加上这个参数,则默认训练一个新的模型

每次训练开始时,修改start_epoch和weights以接着训练上次未完成的模型

你可能感兴趣的:(win10 ST-GCN复现)