interface.py:
接口定义base.py:
接口的基础实现extend.py:
在基础实现上进行自己特有的改造(可仿造我写的进行)。utils.py:
工具类写代码之前需要先把文档写好,不然改来改去的很low
我希望我的框架写出来是链式编程,上次只是部分链式,差点意思
随机种子、设置种子,保证我能复现
单独的一个类(信息类
)用作数据库保存,
存放我需要输出的信息等,
并且我需要使用pandas
模块,
这样我才能够很好的使用里面的plot()
,以及保存为excel
等等
pandas
,所以写的很蠢。当然现在也只是很浅显,但足够。我需要一个单独的配置类
,并且在训练之前输出配置信息,
而且我希望,能有一个单独的模型保存功能,这个模型保存不仅仅是pytorch模型的保存,
我希望可以把我这个类的相关信息都保存下来,用作复原,不过感觉这个很费时间,
因此后续在更新吧。
__init__
最后也是堆成一大堆,很难看,最后也是不好改。模型工具类
:这个类包括训练、测试,根据输入的不同(输入不同,自己继承重写方法)(要有可移植性)进行训练,把一些基本信息传出。
保存信息类
,这个保存信息类必须是模型工具类
的__init__
初始化参数,不然我无法通过继承去修改。保存信息类
:这个类根据上述类传回的信息,进行下一步的操作。信息保存到信息类
中。
根据配置类判断是否进行下一步操作:
如果我要添加额外的信息统计,并且保存到信息类
中,这要如何做?
保存信息类
,然后添加额外的东西保存到信息类的字典
中汇总工具类
:将上述所有类组合起来,哪怕我要更新,也只要修改部分内容即可。
不带Base的都是接口,无法使用,只是让我写写接口(奥利给)
基础类Source:统一管理基本的操作,如__str__
这样的方法
信息类BaseInfo:存储所有信息,主要作用是保存和管理信息。
配置类BaseConfig:配置模型、参数等,输出配置信息,配置一些特殊选项(例如半精度、采用softmax等)
保存信息类BaseInfoManager:根据传入的信息,计算信息,并保存到Info类中。
__init__
:需要提供信息类
、配置类
配置类
的模型工具类BaseTools:训练、测试等
__init__
:需要提供保存信息类
、配置类
基础框架类BaseFrame:用于使用覆盖上面的内容。
__init__
(可选):信息类
、保存信息类
、配置类
、模型工具类
强调: 结构基本如此,具体看具体的接口
class A():
pass
def show(self):
print('我是A')
class B(A):
def __init__(self):
super().__init__()
def show(self):
super(B, self).show()
print('我是B')
if __name__ == '__main__':
a = A()
b = B()
a.show()
# 我是A
b.show()
# 我是A
# 我是B
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。