封装与模块化
封装与模块化
项目由一系列的.py文件组成,相当于是模块化编程的思想,这样有几点好处:
- 首先是每个py文件各司其职,代码清晰、各个模块的作用看名字就一目了然。
实现了灵活调用,需要哪个就调用哪个,不用在一整个文件里面去搜索、定位。 - 其次是可复用性强,数据A这次用完之后,下次换成数据B,只需要更改一下路径即可。
- 最后是调试方便,不用在一整个的海量代码中推理其中一段的意思,按需定位即可。
举例来说:
通用的深度学习文件架构如下:
dataloader.py
负责数据 包括加载、预处理、增强等。
model.py
负责网络结构,包括Unet、ResNet等
train.py
负责训练,包括循环、优化器等
test.py
负责推理,包括加载模型、预测等
utils.py
负责工具函数,包括可视化、计算指标、评估等
封装同理
将功能模块封装在一个个的def定义的函数中,可复用性强.
举例:
def train(csv_path):
data = load_data(csv_path)
model.fit(data)
return model
train("train.csv")
当下次想要运行其他数据时:
train("val.csv")
即可直接复用。
快捷、清晰、方便
另一方面,
可维护性强
当发现函数需要修改时,只用改函数本身即可,后面的若干个调用自动生效。
换句话说,就不用再一个个去修改后面调用的语句了。

浙公网安备 33010602011771号