本文主要是介绍《南溪的目标检测学习笔记》——夏侯南溪模型搭建篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 网络模型的设计原则
1.1 归一化原则
对于深度神经网络来说,其输入最好进行归一化的设计,也就是目标值(的encoding)最好归一化到[0,1]的区间内;
参考模型:
YOLOV5——YOLO模型的标注使用的是yolo格式,yolo格式的数据是进行了归一化之后的数据,
2 数据载入
2.3 图像文件无法读取?——需要修改当前的工作目录
可以参考下面的代码:
os.chdir(path.dirname(__file__))
其中函数的作用是,
path.dirname(__file__)
:获取当前文件的工作目录。
3 定义模型整体结构
3.1 定义网络结构
Step 1:PyTorch本身不会自动检查网络的自洽性,所以需要采取一定的措施,看看能不能实现用代码实现检查网络的自洽性;
我们使用nn.Module容器来定义整个网络;
Step 2:使用模块化的思想来进行网络的构建,这样利于我们对信息和结构进行封装;
下面写作模块初始化的代码,
4.2.1 初始化函数
def __init__(self) -> None:super(CNN, self).__init__()# 我们需要在父类的初始化函数中传入自身的class# Rest of init code
可以看到,在对父类进行初始化时,我们需要在父类的初始化函数中传入自身的class,
听上海高等研究院的朱海浩同学说:“这是为了不用父类名称就可以调用父类函数。”
4.2 模型训练的PyTorch相关设置——model.enter_train_mode()
初始化检测器,记得将网络设置为train模式,
net.train()
将梯度重置为0;
optimizer.zero_grad()
这篇关于《南溪的目标检测学习笔记》——夏侯南溪模型搭建篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!