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

news/2024/11/15 7:23:05/

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

文章目录

  • 【人工智能概论】 良好的代码书写习惯——参数的集中化管理
  • 一. 参数集中管理的意义
  • 二. 如何进行参数的集中化管理
  • 三. 具体实现
    • 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()

http://www.ppmy.cn/news/46414.html

相关文章

mp4视频无法播放的解决方法

mp4视频是我们日常工作生活中经常会遇到的视频格式,但如果遇到重要的mp4视频无法播放了,该怎么办呢?有mp4视频无法播放的解决方法吗?下面小编为大家整理了这个问题产生的原因以及相应的解决方法,让我们看一看。 什么情况下会导致mp4视频无法…

pytest.mark

目录 一、Pytest简介 二、安装 三、pytest.mark 1.标记 2.参数化 3. skip跳过 4. xfail 该用例置为失败 一、Pytest简介 Pytest是python一个第三方测试框架,有非富的第三方插件可以扩展 特点: 简单灵活,容易上⼿;⽀持参数…

C++组合模式探索:以统一接口管理复杂的层次结构

C组合模式探索:以统一接口管理复杂的层次结构 引言组合模式基本概念组合模式实现组合模式的应用场景组合模式的优缺点组合模式在实际项目中的应用组合模式与其他设计模式的关联组合模式在C中的应用文件系统管理 - 用于实现文件和目录的层次结构组织架构管理 - 用于管…

macOS镜像下载

推荐网址–sysin | SYStem INside | 数据中心系统内幕 ISO 格式软件包 macOS Monterey 12.0.1 (21A559) 百度网盘链接: https://pan.baidu.com/s/1I9r4aF1Fojb3DXHv0V4N1w 提取码: tdvc macOS Big Sur 11.6 (20G165) 百度网盘链接: https://pan.baidu.com/s/1iihwcLFgYpq03gw…

从数据到应用 Web3不再纸上谈兵

继宣布拨款5000万港元加速推动Web3生态圈发展后,香港再次明确对Web3产业创新的支持。近日,香港Web3协会正式成立,创立Web3Hub基金,“东方之珠”正在大力推进第三代互联网的生态建设。 不仅仅是政策红利,ChatGPT等人工…

mac终端使用代理网络

在终端命令行中,配置代理。 以使用 ClashX 代理客户端为例,HTTP 代理端口为 7890 ,Socks5 代理端口为 7891。端口是可修改的。HTTP 代理或 Socks5 代理,配置时选其中一种复制到终端即可。 点击 ClashX > 复制终端代理命令&am…

【LeetCode: 剑指 Offer II 099. 最小路径之和 | 暴力递归 | DFS =>记忆化搜索=>动态规划】

🍎作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎 🍎座右…

天龙八部手游服务端架设搭建教程

天龙八部手游服务端架设搭建教程 大家好,我是艾西。最近更新游戏搭建教程比较少也被不少小伙伴催更,今天我和大家聊聊天龙八部手游服务端架设搭建。 游戏讲述元佑元年,大宋遭受辽国入侵的故事,玩家可扮演峨眉、丐帮、天山、逍遥、…