最近在看hrnet模型代码,想查看hrnet的模型架构,输出一下,但是模型参数需要cfg,我就想着怎么把yaml文件导进来然后打印模型呢,直接chat就可以了,下面解释一下每一部分,非常的好理解
yaml文件格式如下:
之后在hrnet文件夹下输入代码
首先加载文件路径
yaml_file_path = 'F:/code/DEKR-main/experiments/coco/w32/w32_4x_reg03_bs10_512_adam_lr1e-3_coco_x140.yaml'
之后解析文件
yaml_file = Path(yaml_file_path)
下一步 判断文件是否存在如果存在就打开这个文件,并将这个文件定义为file,并用yaml加载这个文件,到这里会形成一个字典,你调用的话只能使用cfg[参数] 来进行访问,如果想要cfg.内容.内容的形式就需要使用OmegaConf创建这种访问方式。代码如下:
yaml_file_path = 'F:/code/DEKR-main/experiments/coco/w32/w32_4x_reg03_bs10_512_adam_lr1e-3_coco_x140.yaml'
yaml_file = Path(yaml_file_path)
if yaml_file.exists():with yaml_file.open('r') as file:cfg_dict = yaml.safe_load(file)cfg = OmegaConf.create(cfg_dict)print(cfg)pose = PoseHigherResolutionNet(cfg)print(pose)
完整代码如下:
import yaml
from omegaconf import OmegaConf
from pathlib import Path
yaml_file_path = 'F:/code/DEKR-main/experiments/coco/w32/w32_4x_reg03_bs10_512_adam_lr1e-3_coco_x140.yaml'
yaml_file = Path(yaml_file_path)
if yaml_file.exists():with yaml_file.open('r') as file:cfg_dict = yaml.safe_load(file)cfg = OmegaConf.create(cfg_dict)print(cfg)pose = PoseHigherResolutionNet(cfg)print(pose)
else:print(f"Error: The YAML file {yaml_file_path} does not exist.")
打印出来结果: