大家都嘲讽,深度学习工程师就是调参狗。可见,调参在深度学习中的重要性。python
中有用于统一配置管理参数的包configparser
#-*-coding:utf-8-*-
import configparser
cf = configparser.ConfigParser()
cf.add_section('birthday')
cf.set('birthday','month',value='June')
cf.set('birthday','day',value='12')
cf.add_section('school')
cf.set('school','address',value='Jingzhai Road')
cf.set('school','name',value='USTC')
with open('information.txt','a') as configration:
cf.write(configration)
几点注释:
1. 第四行:新建一个Configparser
实例。此处可选的方法有:Configparser
、RawConfigParser
和SafeConfigParser
,像我们这样的低端玩家直接使用Configparser
就好;
2. 第六行:增加birthday
组(section)
3. 第七行:增加month
键,键值为June
4. 第十行:增加school
组
5. 第十四、十五:将实例写入到information.txt
文件。打开文件模式可选为a
,w
,a
为在配置文件中添加内容,w
为擦除原文件内容并写入。
写入完毕后的information.txt
文件双击打开后如下图:
依然以information.txt
为例。如果文件夹中已经存在配置文件,我们要将详细的配置读取出来:
#-*-coding:utf-8-*-
import configparser
cf = configparser.ConfigParser()
cf.read('information.txt')
sections = cf.sections()
options = cf.options('birthday')
items = cf.items('birthday')
school_add = cf.get('school','address')
school_add2 = cf['school']['address']
print('Sections in config file:', sections)
print('Options in birthday section:', options)
print('items in birthday section:', items)
print('school address:', school_add)
print('school address2:', school_add2)
输出:
Sections in config file: ['birthday', 'school']
Options in birthday section: ['month', 'day']
items in birthday section: [('month', 'June'), ('day', '12')]
school address: Jingzhai Road
school address2: Jingzhai Road
几点注释:
1. 第五行:读取配置文件
2. 第七行:获取该配置文件的所有组(section)
3. 第八行:获取birthday
组(section)的所有键的键名
4. 第九行:获取birthday
组(section)的所有键名键值对
5. 第十行:获取school
组(section),键名为address
的键值。获取到的键值为字符串类型。
6. 第十一行:使用cf['school']['address']
也可以达到和get
同样的效果。
getint(section,option)
:获取键值,返回类型为整形;remove_section(section)
:删除名为section
的组;remove_option(section,option)
:删除section
组下面的option
键;set(section,option,value)
:将section
组下面的option
键的键值设为value
;进阶玩法,可参见博主miner_k的python的ConfigParser模块