在用python做项目的时候,尤其是神经网络模型调参,我们往往需要对参数进行频繁调整,因此我们需要定义一个工具类来读取配置文件中的配置参数,这样当我们需要调参时,只需要对配置文件中的参数进行调整即可。
#coding: utf-8 -*-
import configparser
#生成配置文件 下面列出三种方式
config = configparser.ConfigParser()
#1、姓名与身份编号
config['name'] = {
'xiaoming':'001',
'xiaofang':'002',
'xiaohong':'003'
}
#2、技能
config['skill']={}
config['skill']['ming'] = 'java'
config['skill']['fang'] = 'python'
config['skill']['hong'] = 'C'
#3、评分
config['score'] = {}
score = config['score']
score['ming'] = '99'
score['fang'] = '98'
score['hong'] = '97'
# #写入
with open('configg.ini','w') as cfg:
config.write(cfg)
#生成的configg.int如下图
#读取configgw文件的内容
config.read('configg.ini')
#获取skill栏位下,小明的技能
i = config.get('skill','ming')
print(i) #输出java
生成的配置文件如下图
做一个配置文件读取函数:
配置文件内容如下,有整型,字符型,浮点型。我们写一个函数,让每一个分栏下对应的键和值以字典的形式返回给我们。
#coding:utf-8 -*-
import configparser
def get_config(config_file = 'configg.ini'):
'''
定义读取配置文件函数,分别读取各个分栏的配置参数,包含ints、floats、strings
'''
parser = configparser.ConfigParser()
parser.read(config_file) #读取文件
#获取整型参数:按照字典 键——值的形式保存
cfg_ints = [(key, int(value)) for key, value in parser.items('ints')]
#获取浮点型参数:按照字典 键——值的形式保存
cfg_floats = [(key, float(value)) for key, value in parser.items('floats')]
#获取字符型参数:按照字典 键——值的形式保存
cfg_strings = [(key, str(value)) for key, value in parser.items('strings')]
#返回一个字典对象,包含读取的参数
return dict(cfg_ints + cfg_floats + cfg_strings)
kkk = get_config()
print(kkk)
#输出kkk的值为:{'xiaoming': 1, 'xiaofang': 2, 'xiaohong': 3, 'ming111': 99.0, 'fang222': 98.0, 'hong333': 97.0, 'ming': 'java', 'fang': 'python', 'hong': 'C'}
输出为:{‘xiaoming’: 1, ‘xiaofang’: 2, ‘xiaohong’: 3, ‘ming111’: 99.0, ‘fang222’: 98.0, ‘hong333’: 97.0, ‘ming’: ‘java’, ‘fang’: ‘python’, ‘hong’: ‘C’}
综上,我们想用什么参数就直接从字典中获取就好了。
备注:参考书籍《tensorflow2.0应用编程》-赵英俊 著 第三章 工具类实现