(一) 什么是mBatch?
Mini-batching 是一个一次训练数据集的一小部分,而不是整个训练集的技术。它可以使内存较小、不能同时训练整个数据集的电脑也可以训练模型。
Mini-batching 从运算角度来说是低效的,因为你不能在所有样本中计算 loss。但是这点小代价也比根本不能运行模型要划算。
它跟随机梯度下降(SGD)结合在一起用也很有帮助。方法是在每一代训练之前,对数据进行随机混洗,然后创建 mini-batches,对每一个 mini-batch,用梯度下降训练网络权重。因为这些 batches 是随机的,你其实是在对每个 batch 做随机梯度下降(SGD)。
(二) 那怎么来选择minibatch的大小的:
1.如果总体训练集样本量较小时,直接用batch gradient descent,比如m<=2000时。
2.典型的minibatch size大小为:64,128,256,512。(考虑到计算机内存通常是2的次方),通常都尝试,来看哪个使得损失函数J的下降速度快并且波动小。
3.选区的minibatch要适合CPU/GPU memory。
(三) NN_Devices
指定网络执行的设备:CPU还是GPU。
CPU:网络中所有层的计算将在CPU上执行。
GPU:网络中所有层的计算将在GPU上执行。在GPU上执行需要对系统和LabVIEW项目进行适当的设置。有关更多信息,请参阅GPU加速部分。
(四) GPU Id
指定系统中的GPU索引。仅适用于多个GPU系统。(0)。
(五) Train?
指定是否正在为培训创建网络。[错误]。影响分配给创建层的内存。如果创建仅用于推断的网络,则设置为FALSE。
(六) Working Dir
设置用于存储模型/网络权重、拓扑配置文件和SVG格式的网络拓扑渲染的工作目录。控件的默认值为。
(七) NN out
Network instance output
(八) Input3D_Cfg
用于创建三维输入层的配置信息。
Name :定义层的名称;
Dims_In: 表示层的输出/激活维度的簇。
Chs :Channel size of a 3D data/activations.
H:Height of a 3D data/activations.
W:Width of a 3D data/activations.
Aug Config Params :包含扩充配置参数的群集数组。(默认值为空)。
数组中扩充类型的出现顺序定义了要应用于输入样本minibatch的扩充类型的顺序。
Aug Config Params :包含扩充配置参数的群集。
Flip_H:水平翻转图像。
Flip_V:垂直翻转图像。
Brightness:更改图像的亮度。
Contrast:改变图像的对比度。
Noise:为图像添加噪波。
Blur:
Saturation:
Rotate:
Move:
Skew:
Scale:
Aug Value :定义图像增强/变形幅值,如果Aug值≤0,则跳过增加。
Distribution Type:定义分发类型。
Uniform:定义将从范围[-Aug Value,Aug Value]中随机选取扩增比例(即均匀分布)。
Gaussian:定义将从标准偏差等于Aug值的高斯分布中采样增强比例。
Creates and sets up a context for a new Network.
Name定义一个网络名称
(十) NN_Layer_Create(Input3D).vi
创建/向网络添加三维输入层。该层的目的是通知网络和连续层关于数据样本的尺寸,并根据NN定义的小批量大小分配存储器用于存储小批量_创建.vi或从中创建_配置文件六该层在推理时不影响网络的计算复杂度。只应在网络的输入层添加。
可选地,数据扩充可以应用于小批量的训练样本。
数据扩充是一种有效的方法,通过对训练数据集进行不同类型的变换和变形,产生新的样本作为额外的训练数据。数据扩充是一种正则化技术,它可以极大地提高训练网络的泛化能力,从而测试错误率,特别是对于较小的训练数据集。
增加仅在列车运行期间使用。
Creates/Adds a 3D input layer to the network. The purpose of this layer is to inform the network and consecutive layer about the dimensions of the data sample and allocate a memory for storing mini-batch according to the miniBatch size defined at NN_Create.vi or NN_Create_from_CFG.vi. This layer does not influence on computational complexity of the network at inference time. This layer should be added only at the input of the network.
Optionally data augmentation can be applied over mini-batch of training samples.
Data augmentation is an effective method to expand the training data by applying different types of transformations and deformations to the training dataset, resulting in new samples as additional training data. Data augmentation is one of the regularization techniques that can greatly improve generalization of the trained network, and thus test error rate, especially for small training datasets.
Augmentation is applied only during train time.
(十一) NN_Layer_Create(Conv3D).vi
为网络创建/添加三维卷积层。
Conv3D_Cfg:设置CONV 3D层所需的配置信息。
Name:定义层的名称
Conv_Params :卷积配置参数。
Filters (1) :筛选器/内核数(1);
Kernel_Size (3):过滤器/内核窗口大小(3)。
Stride (1):回旋步幅(1)。
Pad_Type (Valid):定义填充类型。
Same:自动尽可能多的填充,使卷积的输出具有相同的维数。
Valid:没有对图像应用填充。
Pad_Size :填充的数量由Pad_Size参数定义。
Pad_Size:填充的数量由Pad_Size参数定义。
BN? :指定Conv3D层是否具有批处理规范化(FALSE)。
Activation :指定应用于卷积输出的非线性函数。
Sigmoid:应用乙状结肠激活功能。h(x)=1/(1+exp(-x))。
ReLU:应用校正的线性单元激活函数。h(x)=最大值(0,x)。
LReLU:应用漏整流线性单元激活函数。h(x)=最大值(0.1*x,x)。
Tanh:应用双曲正切激活函数。h(x)=(exp(x)- exp(-x))/(exp(x)+ exp(-x))。
None:不会对输出应用激活功能。
Init_Params:重量初始化配置参数。
Init_Type (Xavier):初始化类型选择器。
Uniform:用标准规定的振幅均匀分布的随机值初始化所有权重。
Gaussian:使用高斯分布的随机值初始化所有权重,标准偏差由STD指定。
Xavier:使用高斯分布的随机值初始化所有权重,标准偏差等于sqrt(2/(输入+输出))。
STD standard deviation (1) :是高斯概率密度函数的标准偏差。默认值为(1.0)。
Custom_Params:卷积层的附加参数。
(十二) NN_Layer_Create(Region).vi
Region_Params:设置区域层所需的配置信息。
classes :要检测的类数。应与数据集中表示的类数匹配。默认值为1。
coords :表示边界框坐标的值的数目。默认值为4。(X_中心、Y_中心、宽度、高度)
num :锚的数量。默认值为1。
thresh :将检测到的框视为真阳性的对象可信度阈值。默认值为0.8。
object_scale :训练过程中客观的重要性。默认值为5。
class_scale:培训过程中分类的重要性。默认值为1。
coord_scale :在训练中预测盒坐标的重要性。默认值为1。
noobject_scale:在训练过程中抑制真正消极情绪的重要性。默认值为1。
anchors :锚定尺寸(宽度和高度)以二维数组表示,其中每行表示锚定框的宽度和高度。行数应与num的值相对应。默认值为[[1,1]]。
Optimizer :从以下列表中选择优化算法:
SGD:随机梯度下降。
Loss_Type :定义以下功能
MSE:均方误差。
CrossEntropy:适用于具有SoftMax输出层的网络。
Momentum:设置动量系数。默认值为0.9。
Weight Decay :L2正则化参数[1E-8]。
Train_Type训练类型
Regression:指定训练的回归类型。适用于预测连续值。
Classification:指定培训的分类类型。适用于预测分类值。
Detection:指定训练的对象检测类型。用于目标检测任务。
Data_Sampling:指定小批量数据采样算法。[随机]。
Random:通过从数据集中随机抽取数据样本来构造小批量。
Sequential:在训练过程中,输入以小批量的形式依次输入到网络中。
(十四) NN_Cfg_LR_Decay_Policy.vi
设置学习速率更新策略。
LR_Decay_Params 配置参数以指定学习速率更新过程。
Policy_Type指定学习速率更新策略类型。(手动)。
Manual将学习速率设置为LR0指定的值。
Step每k个周期学习率降低2倍。
Exp以LR=LR0exp(-1epochs/k)的速率指数降低学习速率。
1/t: 降低学习速率,速率等于LR=LR0/(1+epochs/k)。
LR0初始学习率。指定用于根据所选学习策略计算即时学习率的初始学习率。
k定义学习速率衰减速度的参数
WarmUp_Policy指定预热期间控制学习速率的策略。温热策略是从一个小的学习率开始,然后逐渐增加到LR0。
执行一个优化步骤(小批量采样->正向传播->损耗评估->反向传播->网络更新),并返回当前迭代的评估损失值。
Det_Train_Stats返回为对象检测配置的网络的统计信息。
Avg_Recall当前迭代的平均召回率(TP/(TP+FN))。如果IOU>0.5,则该预测被视为TP。不考虑预测的置信水平。越高越好。召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitive,可以看到召回率与灵敏度是一样的。
Avg_Class平均等级/类别概率。越高越好。
Avg_Obj目标度(置信度)TP概率的平均值(此框中存在对象的概率(锚点))。如果检测到的目标和地面真相之间的IOU大于等于0.5,则认为正确检测(真阳性)。越高越好。
Avg_IOU预测和地面真实边界框之间的平均IOU(相交于联合)。不考虑预测的置信水平。
Avg_NoObj TN.的平均置信水平越低越好。
Count当前小批量中地面真实对象的数量。
Loss平均损失(误差)。越低越好。