将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py)

将cmd终端运行的程序,在pycharm中调试运行:

对象以CVPR2021中论文的开源代码为例

论文题目为:
Track to Detect and Segment: An Online Multi-Object Tracker
代码链接:
https://github.com/JialianW/TraDeS.git
代码的环境安装链接可参考:
https://blog.csdn.net/qq_42962681/article/details/115906491?spm=1001.2014.3001.5501


问题描述:

在GitHub中的代码,大多数都是在cmd终端上运行的,很少有直接在pycharm中直接运行(以demo.py为例,直接运行demo.py,就可运行出结果),这对我这样的初学者去理解、修改代码造成了很大的困难,因此为了在pycharm中直接运行并调试参数,找到下方方法,此贴用以记录自己的学习历程。如下面代码所示:

在cmd终端,转到demo.py所在的文件夹下:

cd TraDeS_ROOT/src/

运行下面代码:

python demo.py tracking --dataset mot --load_model ../models/mot_half.pth --demo ../videos/mot_mini.mp4 --pre_hm --ltrb_amodal --pre_thresh 0.5 --track_thresh 0.4 --inference --clip_len 3 --trades --save_video --resize_video --input_h 544 --input_w 960

终端中代码所示如下图:
将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py)_第1张图片

解决方法:

作为一个编程小白,pycharm都没完全明白,直接在终端运行,虽然能跑出结果,但是理解和更改参数却是无法下手。因此,为了能在pycharm中直接运行(以便能弄清代码和参数更改),通过查资料和GitHub上问题的回答以及自己的尝试,得到以下两种方法。


一、在pycharm中直接添加运行代码

1.点击所要运行的主程序 demo.py
将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py)_第2张图片
2.点击“Run” 菜单下的“ Edit configuration”
将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py)_第3张图片
3.点击右上角的“+”,选择“python”
将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py)_第4张图片
4.之后在右方填入相关信息
Name:填写要运行的代码文件 这里为demo.py
Script path :找到demo.py所在文件夹下的路径
Parameters:输入上方cmd终端下的代码
Python interpreter: 为自己创建的环境
将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py)_第5张图片
5.配置好后就可直接运行demo.py了
将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py)_第6张图片


二、更改opts.py文件中的参数,运行程序

这种方法需要了解一下argparse模块,并熟悉argparse的用法。argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。


下面详细介绍我们如何修改参数 1.首先找到opts.py所在的位置,如下图所示:
F:test\TraDeS-master\src\lib\opts.py

将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py)_第7张图片
opts.py代码如下图所示:
将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py)_第8张图片


2.以下方代码为例,在opts.py中进行修改。

python demo.py tracking --dataset mot --load_model ../models/mot_half.pth --demo ../videos/mot_mini.mp4 --pre_hm --ltrb_amodal --pre_thresh 0.5 --track_thresh 0.4 --inference --clip_len 3 --trades --save_video --resize_video --input_h 544 --input_w 960

1)对于tracking,更改参数default和修改--task',详细代码如下图:

self.parser.add_argument('task', default='',
                             help='ctdet | ddd | multi_pose '
                             '| tracking or combined with ,')
                                         (line 14 in opts.py) 
                                         
更改为:
self.parser.add_argument('--task',default='tracking',
                             help='ctdet | ddd | multi_pose '
                             '| tracking or combined with ,')

这里的修改我用时最长,当时对argparse模块了解的不深入,以为简单的修改default就行,这样运行demo.py就会出现demo.py: error: the following arguments are required: task的报错。


2)对于`--load_model ../models/mot_half.pth`这种类型的参数,更改参数`default`,这里就是加载训练的模型,详细代码如下图:
self.parser.add_argument('--load_model', default='',
                             help='path to pretrained model')
                                         (line 34 in opts.py)

更改为:
self.parser.add_argument('--load_model', default='../models/mot_half.pth',
                             help='path to pretrained model')

3)对于`--pre_hm`这种命令,更改参数`action`,代码如下:
self.parser.add_argument('--pre_hm', action='store_true')
									 (line 214 in opts.py)

更改为:
self.parser.add_argument('--pre_hm', action='store_false')

将所有指定的参数修改完后,就可直接运行demo.py了

原因分析:

这个问题前前后后折腾了我好几天,一度想放弃挣扎,但是终究慢慢的摸索出来了,前路漫漫,要学的还很多,加油!


你可能感兴趣的:(python,github,深度学习,神经网络)