将cmd终端运行的程序,在pycharm中调试运行(demo.py test.py train.py) | 您所在的位置:网站首页 › pycharm单步调试乱码 › 将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终端中代码所示如下图: 作为一个编程小白,pycharm都没完全明白,直接在终端运行,虽然能跑出结果,但是理解和更改参数却是无法下手。因此,为了能在pycharm中直接运行(以便能弄清代码和参数更改),通过查资料和GitHub上问题的回答以及自己的尝试,得到以下两种方法。 一、在pycharm中直接添加运行代码 1.点击所要运行的主程序 demo.py 二、更改opts.py文件中的参数,运行程序 这种方法需要了解一下argparse模块,并熟悉argparse的用法。argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。 下面详细介绍我们如何修改参数 1.首先找到opts.py所在的位置,如下图所示: F:test\TraDeS-master\src\lib\opts.py
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 9601)对于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了 原因分析:这个问题前前后后折腾了我好几天,一度想放弃挣扎,但是终究慢慢的摸索出来了,前路漫漫,要学的还很多,加油! |
CopyRight 2018-2019 实验室设备网 版权所有 |