Matlab:trainingOptions()详解 训练选项 您所在的位置:网站首页 matlab详解 Matlab:trainingOptions()详解 训练选项

Matlab:trainingOptions()详解 训练选项

2023-07-18 14:18| 来源: 网络整理| 查看: 265

trainingOptions用于设置神经网络的训练策略以及超参数

用法:options = trainingOptions(solverName,Name,Value)            solverName为优化函数,Name-Value为键值对,返回一个TrainingOptions对象

看个例子更直观,

>> options = trainingOptions('sgdm', ... 'MiniBatchSize',512, ... 'MaxEpochs',2, ... 'InitialLearnRate',1e-3, ... 'Shuffle','every-epoch', ... 'ValidationData',imdsValidation, ... 'ValidationFrequency',3, ... 'Verbose',false, ... 'Plots','training-progress'); >> options options = TrainingOptionsSGDM - 属性: Momentum: 0.9000 InitialLearnRate: 1.0000e-03 LearnRateSchedule: 'none' LearnRateDropFactor: 0.1000 LearnRateDropPeriod: 10 L2Regularization: 1.0000e-04 GradientThresholdMethod: 'l2norm' GradientThreshold: Inf MaxEpochs: 2 MiniBatchSize: 512 Verbose: 0 VerboseFrequency: 50 ValidationData: [1×1 matlab.io.datastore.ImageDatastore] ValidationFrequency: 3 ValidationPatience: Inf Shuffle: 'every-epoch' CheckpointPath: '' ExecutionEnvironment: 'auto' WorkerLoad: [] OutputFcn: [] Plots: 'training-progress' SequenceLength: 'longest' SequencePaddingValue: 0 SequencePaddingDirection: 'right' DispatchInBackground: 0 ResetInputNormalization: 1

可以看到,能调的参数很多,下面进行详解

solverName:优化函数,可选’sgdm’,‘rmsprop’,‘adam’Momentum:动量,[0,1]之间InitialLearnRate:初始学习率LearnRateSchedule:学习率策略,‘none’或者’piecewise’,'none’表示学习率不变,'piecewise’为分段学习率LearnRateDropFactor:学习率下降因子,[0,1]之间,降低之后学习率为:当前学习率*下降因子LearnRateDropPeriod:学习率下降周期,即几个epoch下降一次学习率L2Regularization:L2正则化因子GradientThresholdMethod:用于裁剪超过阈值的梯度,可选’l2norm’,‘global-l2norm’,‘absolute-value’GradientThreshold:梯度阈值,如果梯度大于阈值,则按GradientThresholdMethod设定的方法处理MaxEpochs:最大训练回合数,正整数,默认为20MiniBatchSize:就是batchsize,每次迭代使用的数据量,正整数Verbose:是否在命令行窗口显示实时训练进程,0或1,若为1,则在命令行显示当前在干啥了,默认为true在这里插入图片描述VerboseFrequency:Verbose在命令行打印的频率,默认为100ValidationData:验证集数据,是一个ImageDatastore对象ValidationFrequency:验证频率,几个batchsize后验证一次,不是epochValidationPatience:早停条件,Validation上loss大于或等于最小loss多少epoch后停止训练,比如,当前loss为最小值且为0.01,再经过几个回合都没有低于0.01,就停止训练Shuffle:数据打乱策略,可选’once’,‘never’,‘every-epoch’               ‘once’:在训练前打乱               ‘never’:不打乱               ‘every-epoch’:每个epoch打乱一次 默认为’once’,建议选择‘every-epoch’,因为MATLAB训练网络的时候,如果数据不够一个batchsize会直接丢弃,‘every-epoch’可以避免丢弃同一批数据CheckpointPath:网络保存路径,默认为’’,即默认不保存,如果设置的有路径,则每个epoch后会非覆盖的保存一次ExecutionEnvironment:硬件环境,用GPU还是CPU,可选’auto’,‘cpu’,‘gpu’,‘multi-gpu’,'auto’为有gpu则用,没有就用cpuWorkerLoad:我也没看很懂,大概就是计算资源的问题,一般不会用到OutputFcn:默认就行Plots:是否画出实时训练进程,可选’none’或者’training-progress’,默认为’none’SequenceLength:处理序列数据用的SequencePaddingValue:同上SequencePaddingDirection:同上DispatchInBackground:使用后台调度(异步预取队列)从数据存储中读取训练数据,指定false或true,后台调度需要并行计算工具箱,默认为0

其实,在实际用的时候,需要调的也就那么几个,大多就默认就行了,上面代码里面就是常用的几个。

最后附上官方文档链接,更详细



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有