一.前言
自己研究了一段时间的深度学习,在GPT的辅助下可以基本看懂代码,但是自己上手才发现学的不清不楚,借此机会做个总结
二.深度学习代码的构成
1.目录树的搭建
在写(抄)代码之前,需要保证有一个合适的目录结构方便我们更好的梳理自己的代码,更好的管理输入和输出数据,不容易沦陷在屎山中,如下图
下面时一个例子,也是个人认为的一个小纲要
└──root
├──数据集
│ ├──shuju.zip(有很多可能的格式,需要相应函数)
│ ├──数据文件夹
│ │ └──可以将训练集/测试集/验证集分开来存,也可以一起
│ │
│ └──标签 ( 如果标签简单的话不需要进行专门储存)
│
├──数据读取器
│ ├──读取数据到数组中(有时需要做切割,部分当训练部分当测试)
│ ├──数据标准化/清洗
│ ├──数据增强 (可能有旋转,调色等等多种手段)-
│
├──定义神经网络
│ ├──激活函数,网络层数,梯度惩罚的选择
│ └──forward(优化模型的定义)
├──模型训练
│ ├──输入-计算-回传-优化-梯度置为0
│ └──涉及正则化和学习率选择等等
│
├──验证accarcy和泛化能力
│ ├──对测试集和训练集测试,记录准确率
│ └──结果画成图 或 打印训练日志
│
└──输出窗口设定(各种输出自行决定)
上面的部分介绍了目录树的搭建,接下来就需要针对各部分的内容进行一些解释
2.项目建立
这一部分的内容主要包括构建储存结构,下载数据集,数据的分类整理。
储存结构的构建涉及到代码的可读性,在整理数据集的时候有一个比较明确的分层结构有助于更好的完成分类,一个相对完整的项目可以由这几部分组成
datasets文件夹:存放需要训练和测试的数据集
dataset.py:加载数据集,将数据集转换为固定的格式,返回图像集和标签集
model.py:根据自己的需求搭建一个深度学习模型,具体搭建方法参考
config.pyÿ