HALCON 21.11:深度学习笔记---Data(数据)(3)
HALCON 21.11.0.0中,实现了深度学习方法。其中,关于术语“数据”的介绍如下:
术语“数据”一词在深度学习的语境中被用作图像和信息,以及其中的内容。这最后的信息必须以网络可以理解的方式提供。不同的DL方法对于必须提供什么信息以及如何提供这些信息有自己的要求。具体要求见相应章节。
网络对图像的尺寸、灰度值范围和类型提出了进一步要求。具体的值取决于网络本身,可以用函数get_dl_model_param查询。此外,不同方法也有关于信息的要求,如边界框。为了满足所有这些需求,可能必须对数据进行预处理,这可以通过相应的函数preprocess_dl_samples来最方便地完成。
当你训练你的网络时,网络就会适应它的任务。但在某一时刻,你会想要评估网络所学到的东西,甚至在更晚的时候,你会想要测试网络。因此,数据集将被分为三个子集,它们应该是独立的和具有相同的分布。简单地说,子集之间不应该以任何方式相互连接,每个集合包含每个类相同的图像分布。这种分割可以由函数split_dl_dataset方便地完成。
显然最大的子集将用于训练,我们将此数据集称为训练数据集。
在某一时刻,对网络的性能进行评估,以检查是否有利于继续进行网络优化。对于这种验证,使用的是第二组数据,即验证数据集。即使验证数据集与第一个数据集不相交,也会对网络优化产生影响。
因此,为了测试模型在现实世界中部署时可能的预测,使用了第三个数据集,即测试数据集。对于一个具有代表性的网络验证或评估,验证数据集和测试数据集应该具有统计上相关的数据,这给出了所需数据量的一个下界。
还要注意的是,为了训练网络,你最好使用具有代表性的图像,也就是那些你想要稍后处理的图像,而不仅仅是“完美”的图像,否则网络在处理非“完美”的图像时可能会有困难。