IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【mmcv】——config配置文件的使用 -> 正文阅读

[开发工具]【mmcv】——config配置文件的使用

配置

Config 类用于操作配置文件,它支持从多种文件格式中加载配置,包括 python, jsonyaml
它提供了类似字典对象的接口来获取和设置值。

以配置文件 test.py 为例

a = 1
b = dict(b1=[0, 1, 2], b2=None)
c = (1, 2)
d = 'string'

加载与使用配置文件

>>> cfg = Config.fromfile('test.py')
>>> print(cfg)
>>> dict(a=1,
...      b=dict(b1=[0, 1, 2], b2=None),
...      c=(1, 2),
...      d='string')

对于所有格式的配置文件,都支持一些预定义变量。它会将 {{ var }} 替换为实际值。

目前支持以下四个预定义变量:

{{ fileDirname }} - 当前打开文件的目录名,例如 /home/your-username/your-project/folder

{{ fileBasename }} - 当前打开文件的文件名,例如 file.ext

{{ fileBasenameNoExtension }} - 当前打开文件不包含扩展名的文件名,例如 file

{{ fileExtname }} - 当前打开文件的扩展名,例如 .ext

这些变量名引用自 VS Code

这里是一个带有预定义变量的配置文件的例子。

config_a.py

a = 1
b = './work_dir/{{ fileBasenameNoExtension }}'
c = '{{ fileExtname }}'
>>> cfg = Config.fromfile('./config_a.py')
>>> print(cfg)
>>> dict(a=1,
...      b='./work_dir/config_a',
...      c='.py')

对于所有格式的配置文件, 都支持继承。为了重用其他配置文件的字段,
需要指定 _base_='./config_a.py' 或者一个包含配置文件的列表 _base_=['./config_a.py', './config_b.py']

这里有 4 个配置继承关系的例子。

config_a.py 作为基类配置文件

a = 1
b = dict(b1=[0, 1, 2], b2=None)

不含重复键值对从基类配置文件继承

config_b.py

_base_ = './config_a.py'
c = (1, 2)
d = 'string'
>>> cfg = Config.fromfile('./config_b.py')
>>> print(cfg)
>>> dict(a=1,
...      b=dict(b1=[0, 1, 2], b2=None),
...      c=(1, 2),
...      d='string')

config_b.py里的新字段与在config_a.py里的旧字段拼接

含重复键值对从基类配置文件继承

config_c.py

_base_ = './config_a.py'
b = dict(b2=1)
c = (1, 2)
>>> cfg = Config.fromfile('./config_c.py')
>>> print(cfg)
>>> dict(a=1,
...      b=dict(b1=[0, 1, 2], b2=1),
...      c=(1, 2))

在基类配置文件:config_a 里的 b.b2=None被配置文件:config_c.py里的 b.b2=1替代。

从具有忽略字段的配置文件继承

config_d.py

_base_ = './config_a.py'
b = dict(_delete_=True, b2=None, b3=0.1)
c = (1, 2)
>>> cfg = Config.fromfile('./config_d.py')
>>> print(cfg)
>>> dict(a=1,
...      b=dict(b2=None, b3=0.1),
...      c=(1, 2))

您还可以设置 _delete_=True忽略基类配置文件中的某些字段。所有在b中的旧键 b1, b2, b3 将会被新键 b2, b3 所取代。

从多个基类配置文件继承(基类配置文件不应包含相同的键)

config_e.py

c = (1, 2)
d = 'string'

config_f.py

_base_ = ['./config_a.py', './config_e.py']
>>> cfg = Config.fromfile('./config_f.py')
>>> print(cfg)
>>> dict(a=1,
...      b=dict(b1=[0, 1, 2], b2=None),
...      c=(1, 2),
...      d='string')

从基类引用变量

您可以使用以下语法引用在基类中定义的变量。

base.py

item1 = 'a'
item2 = dict(item3 = 'b')

config_g.py

_base_ = ['./base.py']
item = dict(a = {{ _base_.item1 }}, b = {{ _base_.item2.item3 }})
>>> cfg = Config.fromfile('./config_g.py')
>>> print(cfg.pretty_text)    # 经过Config.fromfile()获取一个dict,cfg.pretty_text获取dict的内容
item1 = 'a'
item2 = dict(item3='b')
item = dict(a='a', b='b')
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 19:02:43  更:2021-11-16 19:04:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:50:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码