[python技巧]OmegaConf调用配置文件

在https://blog.csdn.net/qq_43235540/article/details/140250813?spm=1001.2014.3001.5502中介绍了parser的使用方法,一般传入参数和是配置文件一起使用,配置.

OmegaConf.load()

从.yaml文件读取配置

opt, unknown = parser.parse_known_args()
configs = [OmegaConf.load(cfg) for cfg in opt.base]

OmegaConf.from_dotlist

使用OmegaConf.from_dotlist将命令行参数转换为配置字典

cli = OmegaConf.from_dotlist(unknown)

OmegaConf.merge(*configs, cli)

merge合并两个omegaconf.dictconfig.DictConfig类型的配置字典

config = OmegaConf.merge(*configs, cli)
#configs是装着omegaconf.dictconfig.DictConfig的列表,cli是omegaconf.dictconfig.DictConfig

config.pop 删掉一些东西

#从config里弹出"loghtning"这个字典项目,然后把它用赋值给OmegaConf.create()创建的新对象omegaconf.dictconfig.DictConfig.

lightning_config = config.pop("lightning", OmegaConf.create())

get得到配置字典中的某一项

model_config = config.get("model", OmegaConf.create())

代码

import argparse
# from pytorch_lightning import Trainer
from omegaconf import OmegaConf

parser = argparse.ArgumentParser()

parser.add_argument(
    "-b",
    "--base",
    nargs="*",
    required=False,
    metavar="base_config.yaml",
    help="paths to base configs. Loaded from left-to-right. "
            "Parameters can be overwritten or added with command-line options of the form `--key value`.",
    default=["test.yaml"]
)
# 解析命令行参数
opt, unknown = parser.parse_known_args()
configs = [OmegaConf.load(cfg) for cfg in opt.base]
print("configs",configs)

# 使用OmegaConf.from_dotlist将命令行参数转换为配置字典
cli = OmegaConf.from_dotlist(unknown)

config = OmegaConf.merge(*configs, cli)
lightning_config = config.pop("lightning", OmegaConf.create())
model_config = config.get("model", OmegaConf.create())

配置文件 test.yaml

model:
  base_learning_rate: 2.0e-06
  target: ldm.models.diffusion.ddpm.LatentDiffusion
  params:
    log_every_t: 200
    timesteps: 1000
    unet_config:
      target: ldm.modules.diffusionmodules.openaimodel.UNetModel
      params:
        image_size: 64
        in_channels: 1
        out_channels: 1
data:
  target: main.DataModuleFromConfig
  params:
    batch_size: 48
    train:
      target: ldm.data.lsun.LSUNBedroomsTrain
      params:
        size: 64
    validation:
      target: ldm.data.lsun.LSUNBedroomsValidation
      params:
        size: 64


lightning:
  callbacks:
    image_logger:
      target: main.ImageLogger
      params:
        batch_frequency: 10000000000
        max_images: 1
        increase_log_steps: False

  trainer:
    benchmark: True
    max_epochs: 200000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/781227.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

聊一下Maven打包的问题(jar要发布)

文章目录 一、问题和现象二、解决方法(1)方法一、maven-jar-pluginmaven-dependency-plugin(2)方法二、maven-assembly-plugin 一、问题和现象 现在的开发一直都是用spring boot,突然有一天,要自己开发一个…

【CUDA】

笔者在学习Softmax实现时遇到了一个问题,很多文章直接将softmax的计算分成了五个过程,而没有解释每个过程的含义,尤其是在阅读这篇文章时,作者想计算最基本的softmax的效率,以展示可行的优化空间: 贴一个g…

MybatisX插件的简单使用教程

搜索mybatis 开始生成 module path:当前项目 base package:生成的包名,建议先独立生成一个,和你原本的项目分开 encoding:编码,建议UTF-8 class name strategy:命名选择 推荐选择camel:驼峰命…

Centos下rpm和yum执行卡住问题(已解决)

问题描述 执行rpm和yum卡住, 没有任何报错信息,且无法 ctrl c 终止,只能通过后台 kill -9 杀死。 问题排查: 查看yum日志:yum -vv 软件包 会发现卡在 loading keyring from rpmdb,即load DB存在问题。 …

MSPM0G3507——MPU6050读取数据显示在OLED上

移植的立创L1306的部分代码,亲测能用,要源码的评论即可,在CCSTHEIA打开

【代码管理的必备工具:Git的基本概念与操作详解】

一、Git 初识 1.提出问题 不知道你工作或学习时,有没有遇到这样的情况:我们在编写各种⽂档时,为了防止⽂档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,比如: “…

推荐几款漂亮的代码字体

Visual Studio Code 中字体看时间长了就会产生幻觉,于是今天看到有人推荐漂亮的代码字体,于是自己也推荐几款: 需要注意的是,大部分网上的教程都建议使用混合字体,即使用微软雅黑与某种等宽字体混合。但事实上&#x…

(ECCV,2022)Mask-CLIP:从CLIP中提取自由密集标签

文章目录 Extract Free Dense Labels from CLIP相关资料摘要引言方法Mask-CLIPMask-CLIP 实验 Extract Free Dense Labels from CLIP 相关资料 代码:https://github.com/chongzhou96/MaskCLIP 论文:https://arxiv.org/abs/2112.01071 摘要 对比语言-…

接口测试分析、设计以及实现

接口相关理论 ui功能测试和接口测试哪个先执行?–为什么 结论:接口测试先执行 原因:ui功能测试需要等待前端页面开发完成、后台接口开发完后且前端与后端联调完成。ui功能测试与接口测试的区别? ui功能:功能调用&am…

windows上传app store的构建版本简单方法

我们在上传app store上架,或上传到testflight进行ios的app测试的时候,需要mac下的上传工具上传ipa文件到app store的构建版本上。 然而windows电脑这些工具是无法安装的。 因此,假如在windows上开发hbuilderx或uniapp的应用,可以…

程序升级bootloader

文章目录 概述什么是bootloader?为什么用?bootloader启动流程图步骤 下载过程代码获取本地配置信息获取主机传过来的配置信息bootloader发送2给上位机,上位机发送文件给bootloader根据网站复制CRC 烧写flasherase启动编译问题 概述 用keil编…

Halcon 产品周围缺口检测

*读取一张图像read_image (Image, 原图.jpg)*获取图像大小get_image_size(Image, Width, Height)*关闭已经打开的窗口dev_close_window ()*打开新窗口dev_open_window(0, 0, Width, Height, black, WindowHandle) //打开指定大小的窗口*对图像进行阈值操作threshold (Image, R…

【eMTC】eMTC 窄带以及带宽的关系

1 概述 eMTC 传输进行通信时,一般采用1.4M带宽,在和LTE小区联合部署时,需要将LTE的带宽分割成以1.4M带宽为粒度的单位,这个单位在协议上叫做窄带。 2 窄带定义 3 参考文献 36.211

图片高效管理神器,随机高度切割,一键生成灰色图片,个性化处理随心所欲

在数字化时代,图片已成为我们生活和工作中不可或缺的一部分。然而,面对海量的图片资源,如何高效管理、快速处理,成为了许多人头疼的问题。今天,我们为您带来了一款全新的图片高效管理神器_——首助编辑高手&#xff0c…

【沐风老师】3DMAX样条线增强工具SplinePro使用方法详解

3DMAX样条线增强工具SplinePro使用教程 3DMAX样条线增强工具SplinePro,允许创建选定的多条样条曲线形状的轮廓并删除交叉点。 【适用版本】 3dMax2019 - 2025 【安装方法】 1.解压缩后,确认SplinePro-0.2.0.mse和logo.png两个文件在同一文件夹中。 2.…

python+django 环境搭建以及post接口封装

1、搭建pythondjango环境 python 3.7.9的版本 具体参考之前的安装教程 django 使用 pip install django 会自动安装 检验安装版本: python -m django --version 2、创建django项目 django-admin startproject projectname 启动项目:python manage.py…

verilog读写文件注意事项

文章目录 想要的16进制数是文本格式提供的文件,想将16进制数提取到变量内,想要的16进制数是文本格式提供的文件,想将16进制数提取到变量内,想要的16进制数是二进制格式提供的文件,想将16进制数提取到变量内&#xff0c…

大模型在营销领域的探索及创新

1 AIGA介绍 2 AIGA在营销领域的 应用和探索 3 总结与展望

【WPF】桌面程序开发之xaml页面基础布局方式详解

使用Visual Studio开发工具,我们可以编写在Windows系统上运行的桌面应用程序。其中,WPF(Windows Presentation Foundation)项目是一种常见的选择。然而,对于初学者来说,WPF项目中xaml页面的布局设计可能是一…

MySQL8.0在windows下的下载安装及详细使用

下载mysql8.0二进制包 下载地址:MySQL :: Download MySQL Community Server 编辑my.ini配置文件 解压二进制包,新建/编辑my.ini配置文件(如果不存在则新建) [client] #客户端设置,即客户端默认的连接参数 # 设置mysql客户端连接服务端时…