赞
踩
参考
这里以faster rcnn中训练命令为例来说明,训练命令如下
CUDA_VISIBLE_DEVICES=0 python trainval_net.py --dataset pascal_voc --net res101 --bs 1 --nw 1 --lr 0.001 --lr_decay_step 5 --cuda
为方便调试,直接在pycharm下跑训练程序,需做如下设置:
(1)在pychram中打开该项目文件夹,然后打开trainval_net.py(对应命令行执行的文件)程序
,在pycharm中file---setting---project interprete
选择当前程序的解释器(本例均为Python2.7)
(2)在pycharm中run---edit configurations---environment variables
添加环境变量LD_LIBRARY_PATH=/usr/local/cuda/lib64
(3)在pycharm中run---edit configurations---script parameters
添加命令行参数
–dataset pascal_voc --net res101 --bs 1 --nw 1 --lr 0.001 --lr_decay_step 5 --cuda --restore 0
注 :原博客中说:千万不要少了--restore 0,但是自己加上后运行出错,去掉后运行正常
(4)在trainval_net.py程序中添加代码:
import os
os.environ[“CUDA_VISIBLE_DEVICES”]=“0”
注 : os.environ["CUDA_VISIBLE_DEVICES"]="0" 自己没加这条也能运行
完成以上配置后即可直接在pycharm中run本程序。
==============================================================================================================================
或右键trainval_net.py文件选项卡,选“Edit trainval_net.py"”,如下图
在这配置解释器,添加环境变量,添加命令行参数。
其中scrip path :
是当前要运行文件的路径
parameters
: 添加命令行参数
Environment variables
:添加cuda的环境变量
python interpriter
:所用的python解释器
Working directory
:当前的工作路径
首先粗略的理解shell脚本程序的作用是 :将多个liunx命令放到一个文件,一起执行,提升效率。(.sh文件就是一种shell脚本文件)
所以,对利用shell脚本执行的程序在pychram中调试,可以将shell脚本中执行的文件在pychram中打开,并向上面那样传入参数即可。
举个例子 :
例如Faster-RCNN_TF中训练的命令是
./experiments/scripts/faster_rcnn_end2end.sh $DEVICE $DEVICE_ID VGG16 pascal_voc
我们打开faster_rcnn_end2end.sh
查看(里面代码含义查看这,这里面的内容和本文使用的文件内容不一样,但类似,不妨碍理解),在训练时,它其实就是运行train_net.py
,并传入一些参数,即实际上是运行
./tools/train_net.py --device gpu --device_id 0
--weights data/pretrain_model/VGG_imagenet.npy
--imdb voc_2007_trainval --iters 70000
--cfg experiments/cfgs/faster_rcnn_end2end.yml
--network VGGnet_train
这样就可以按照上面配置运行python文件时一样,在pycharm中进行配置了。
另外,需要注意,由faster_rcnn_end2end.sh文件中各执行命令可看出,当前工作路径是主路径Faster-RCNN_TF,要在配置时在Working directory中配置正确,配置图如下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。