HRNet整个项目源码我认为无论是项目结构还是变量、函数命名都非常符合中国人的习惯,我看的全过程都非常舒适,所以作为项目小白我通过把源码全部都手敲了一遍狠狠地学习了作者的编程习惯和技巧。
但是在训练代码的时候还是出现了部分小问题,希望通过博客记录一下。
MPII下载速度挺快的,不用翻墙。但是官方的标注格式是matlab,所以标注文件建议下载HRNet源码里Readme里面提供的链接里去下载作者转化后的json格式的标注。
下载解压后的目录结构如下:
我的电脑配置很低,我只是想把代码跑起来,不追求复现原论文的结果,因此我把配置文件稍微改了一下。

然后把路径都配置一下。

python tools/train.py --cfg default.py # 终端执行这条语句
但是会报错:
发现exp、log文件夹都创建在了tools目录下,显然不是我们想要的,所以是路径有问题。修改如下图:
root = pathlib.Path(__file__).parent.parent.parent # 获得项目的根目录
# 然后把目录都改成下面这样
# basic settings
_C.OUTPUT_DIR = str(root / 'exp')
_C.LOG_DIR = str(root / 'log')
_C.DATA_DIR = str(root / 'data')
_C.DATASET.ROOT = str(root / 'data/mpii')
这也就可以跑起来了。
Pathlib,比用os.path方便得多。CfgNode来管理神经网络的参数我觉得很方便,可以用在自己的项目里,唯一不方便的地方是看开源的代码大家都用的全大写字母,表明这是常量,确实很专业,但自己敲代码的时候真的很容易敲错。log:每种配置单独一个文件夹,里面放log文件和训好的模型。多级目录如果用os.mkdir需要多个判断是否存很麻烦,而Path.mkdir(parents=True, exist_ok=True)一句话就可以搞定。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...