相机标定任务总结
Part 1
Part 2
Part 3
mlp网络具体代码如下所示:
% 定义多层感知机结构
layers = [
featureInputLayer(8) % 8个通道,Tobserve的8个玻片数据作为输入
fullyConnectedLayer(256) % 全连接层
reluLayer % 激活函数
fullyConnectedLayer(128)
reluLayer
fullyConnectedLayer(64) % 全连接层
reluLayer
fullyConnectedLayer(1) % 输出层,预测Tblack
regressionLayer]; % 使用回归层作为损失计算
% 设置训练选项,并使用自定义损失函数
options = trainingOptions('adam', ...
'MaxEpochs', 200, ...
'MiniBatchSize', 2000, ... % 增大Batch Size
'InitialLearnRate', 1e-5, ...
'Plots', 'training-progress', ...
'Verbose', false, ...
'ExecutionEnvironment', 'gpu');
mlp网络中的超参数具体含义如下所示:
- adam:Adam优化器,一种自适应学习率优化算法。
- MaxEpochs——200:Epochs是指整个训练数据集通过神经网络的完整次数。此设置为200,意味着训练数据将被用来更新网络权重200次。较多的Epoch通常可以提高模型的性能,但也可能导致过拟合(模型在训练数据上表现很好,在新未见数据上表现较差)。
- MiniBatchSize——2000:这是每个小批量包含的样本数。小批量是用于每次迭代计算梯度和更新网络权重的。较大的批量大小可以提高训练的稳定性,减少内存消耗的波动,通常也能加快训练程,但可能会影响训练的收敛性能和最终的网络精度。
- InitialLearnRate’——1e-5:学习率是优化器用来更新权重的步长大小。较小的学习率意味着更新步长较小,收敛到最低损失可能需要更多时间,但有助于模型更精细地调整并可能达到更低的损失值。太大的学习率可能会导致训练过程不稳定。
- ‘Plots’, ‘training-progress’:这个选项启用了训练过程中的实时绘图,展示如损失和准确率等指标随训练进度的变化情况。这有助于监视训练过程并及时调整训练策略。
- ‘Verbose’, false:当这个选项设置为
false
时,训练过程中不会在命令窗口中显示详细的信息(如每个epoch的损失和精度)。这有助于减少日志输出的干扰,尤其是在自动化训练过程中非常有用。 - ‘ExecutionEnvironment’, ‘gpu’:这指定了训练过程应在哪种硬件上运行。选择’gpu’用于在支持CUDA的NVIDIA GPU上进行训练,这通常比在CPU上运行快得多,特别是对于大型网络和大批量数据。