> 文章列表 > 【人工智能概论】 良好的代码书写习惯——参数的集中化管理

【人工智能概论】 良好的代码书写习惯——参数的集中化管理

【人工智能概论】 良好的代码书写习惯——参数的集中化管理

【人工智能概论】 良好的代码书写习惯——参数的集中化管理

文章目录

  • 【人工智能概论】 良好的代码书写习惯——参数的集中化管理
  • 一. 参数集中管理的意义
  • 二. 如何进行参数的集中化管理
  • 三. 具体实现
    • 3.1 构建参数管理的类ModelConfig与测试用的类Collage
    • 3.2 参数管理与保存的测试
    • 3.3 检验参数加载的功能

一. 参数集中管理的意义

  • 传统编程讲究的是一个随心所欲,尤其是对参数的管理十分混乱,一旦代码的体量变大,维护难度会大大提高。
  • 因此,如果能把参数给集中管理,势必会提高工作效率,更容易管理参数,也更容易进行进行部署。

二. 如何进行参数的集中化管理

  • 首先,构建管理参数的类ModelConfig,类中的属性为被管理的参数;
  • 其次,类中再构建两个方法,分别用于保存参数、加载参数;
  • 最后,通过类的实例化对象config,实现对参数进行赋值

三. 具体实现

3.1 构建参数管理的类ModelConfig与测试用的类Collage

# model_config.pyimport json# 构建参数管理类ModelConfig
class ModelConfig:def __init__(self,  # 把要用到的参数在这声明collage_name=None,collage_id=None):self.collage_name = collage_nameself.collage_id = collage_iddef save(self, save_path):  # save_path参数文件的保存路径,保存成json文件f = open(save_path, "w")d = {"collage_name": self.collage_name,"collage_id": self.collage_id}d = json.dumps(d)f.write(d)f.close()def load(self, load_path):# load_path是参数导入的路径,加载的是json文件,直接构建一个类不做赋值,然后执行加载文件d = open(load_path).read()d = json.loads(d)self.collage_name = d["collage_name"]self.collage_id = d["collage_id"]# 构建测试用的类Collage
class Collage:def __init__(self, config):self.collage_name = config.collage_nameself.collage_id = config.collage_iddef print_collage_inf(self):print("the collage is named ", self.collage_name)print("the collage's id is ", self.collage_id)

3.2 参数管理与保存的测试

# config_test.py# 加载参数管理类与测试用的类
from model_config import ModelConfig,Collage# 实例化参数管理类,并进行参数赋值
config = ModelConfig("大连理工大学", "10141")# 实例化Collage类,并且借助config进行参数赋值
collage_test = Collage(config)# 执行测试的函数
collage_test.print_collage_inf()# 保存config中的参数与参数值
config.save('./config.json')

3.3 检验参数加载的功能

# load_config.py# 加载参数管理类与测试用的类
from model_config import ModelConfig,Collage# 生成新的参数管理类对象但不赋值
config1 = ModelConfig()# 用load函数加载已经保存好的参数文件
config1.load('./config.json')# 生成新的config测试类的实例,并用config1进行赋值
collage_test1 = Collage(config1)# 执行验证函数
collage_test1.print_collage_inf()