Matlab 训练深度学习模型函数 trainingOptions
'Momentum'
僅當(dāng)求解器為“ sgdm”時(shí),此參數(shù)才適用。 動(dòng)量確定了從上次迭代到當(dāng)前訓(xùn)練迭代的梯度步長(zhǎng)的貢獻(xiàn)。 它必須是介于0和1之間的值,其中0將不提供上一步的貢獻(xiàn),而1將提供上一步的最大貢獻(xiàn)。 默認(rèn)值為0.9。
?
'GradientDecayFactor'
?僅當(dāng)求解器為“ adam”時(shí),此參數(shù)才適用。 它為求解器“ adam”中的梯度移動(dòng)平均值指定指數(shù)衰減率。 它必須是> = 0且<1的值。在“ adam”的原始論文中,此參數(shù)由符號(hào)“ beta1”表示。 默認(rèn)值為0.9。
?
'SquaredGradientDecayFactor'
僅當(dāng)求解器為“ adam”或“ rmsprop”時(shí),此參數(shù)才適用。它為求解器“ adam”和“ rmsprop”中的平方梯度移動(dòng)平均值指定指數(shù)衰減率。它必須是> = 0且<1的值。在“ adam”的原始論文中,此參數(shù)由符號(hào)“ beta2”表示。 “ adam”的默認(rèn)值為0.999,“ rmsprop”的默認(rèn)值為0.9。
?
'Epsilon'
僅當(dāng)求解器為“ adam”或“ rmsprop”時(shí),此參數(shù)才適用。它指定在分母中使用的偏移量,用于求解器“ adam”和“ rmsprop”中的更新。它必須是> 0的值。默認(rèn)值為1e-8。
?
'InitialLearnRate'
用于訓(xùn)練的初始學(xué)習(xí)率。如果學(xué)習(xí)率太低,則訓(xùn)練將花費(fèi)很長(zhǎng)時(shí)間,但是如果學(xué)習(xí)率太高,則訓(xùn)練可能會(huì)陷入次優(yōu)的結(jié)果。求解器'sgdm'的默認(rèn)值為0.01,求解器'adam'和'rmsprop'的默認(rèn)值為0.001。
?
'LearnRateSchedule'
該選項(xiàng)允許用戶指定一種在訓(xùn)練期間降低整體學(xué)習(xí)率的方法。
可能的選擇?包括:
?-“無”-學(xué)習(xí)率不變,保持不變。
?-“piecewise”-每當(dāng)經(jīng)過一定數(shù)量的時(shí)期時(shí),學(xué)習(xí)率就會(huì)乘以一個(gè)系數(shù)。乘法因子由參“ LearnRateDropFactor”控制,乘法之間的紀(jì)元數(shù)由“ LearnRateDropPeriod”控制。
??默認(rèn)為“無”。
?
'LearnRateDropFactor'
僅當(dāng)“ LearnRateSchedule”設(shè)置為“ piecewise”時(shí),此參數(shù)才適用。這是一個(gè)乘數(shù)因子,每次經(jīng)過一定數(shù)量的紀(jì)元時(shí),它就會(huì)應(yīng)用于學(xué)習(xí)率。
默認(rèn)值為0.1。
?
'LearnRateDropPeriod'
僅當(dāng)“ LearnRateSchedule”設(shè)置為“ piecewise”時(shí),此參數(shù)才適用。每次經(jīng)過此時(shí)期數(shù)時(shí),學(xué)習(xí)率下降因子將應(yīng)用于全局學(xué)習(xí)率。默認(rèn)值為10。
?
'L2Regularization'
L2正則化因子。應(yīng)當(dāng)注意,層中的每個(gè)參數(shù)集都可以為此L2正則化器指定一個(gè)乘數(shù)。
默認(rèn)值為0.0001。
?
'GradientThresholdMethod'
-用于梯度閾值化的方法可能的選項(xiàng)是:
? -'global-l2norm'-如果考慮所有可學(xué)習(xí)的參數(shù),梯度的全局L2范數(shù)大于GradientThreshold,則將所有梯度縮放GradientThreshold / L,其中L是全局L2范數(shù)。
???? -'l2norm'-如果可學(xué)習(xí)參數(shù)的梯度的L2范數(shù)大于GradientThreshold,則對(duì)梯度進(jìn)行縮放以使其范數(shù)等于GradientThreshold。
?? -'絕對(duì)值'-如果可學(xué)習(xí)參數(shù)的梯度中各個(gè)偏導(dǎo)數(shù)的絕對(duì)值大于GradientThreshold,則將其縮放為具有GradientThreshold的絕對(duì)值并保留其符號(hào)。
? 默認(rèn)值為“ l2norm”。
?
'GradientThreshold'
漸變的正閾值。 默認(rèn)值為Inf。
?
'MaxEpochs'
-用于訓(xùn)練的最大輪數(shù)。 默認(rèn)值為30。
?
'MiniBatchSize'
-用于每次訓(xùn)練迭代的最小批次的大小。 默認(rèn)值為128。
?
'Verbose'
-如果將其設(shè)置為true,則有關(guān)訓(xùn)練進(jìn)度的信息將被打印到命令窗口中。默認(rèn)值為true。
?
'VerboseFrequency'
-僅在“Verbose”設(shè)置為true時(shí)才有效。它指定打印到命令窗口之間的迭代次數(shù)。默認(rèn)值為50。
?
'ValidationData'
訓(xùn)練期間用于驗(yàn)證的數(shù)據(jù)。可以是:
-具有分類標(biāo)簽或數(shù)字響應(yīng)的數(shù)據(jù)存儲(chǔ)
-表格,第一列包含圖像路徑或圖像
-單元格數(shù)組{X,Y},其中X是包含輸入數(shù)據(jù)的數(shù)字?jǐn)?shù)組,Y是響應(yīng)數(shù)組
?
'ValidationFrequency'
-驗(yàn)證指標(biāo)評(píng)估之間的迭代次數(shù)。僅當(dāng)您還指定“ ValidationData”時(shí),這才有效。默認(rèn)值為50。
?
'ValidationPatience'
-在網(wǎng)絡(luò)訓(xùn)練停止之前,允許驗(yàn)證損失大于或等于先前的最小損失的次數(shù),指定為正整數(shù)或Inf。默認(rèn)值為Inf。要打開自動(dòng)停止網(wǎng)絡(luò)訓(xùn)練的功能,請(qǐng)指定一個(gè)正整數(shù)作為“ ValidationPatience”值。
?
'Shuffle'
這個(gè)控制訓(xùn)練數(shù)據(jù)是否被重排。選項(xiàng)包括:
-“從不”-不應(yīng)用改組。
-“一次”-訓(xùn)練之前,數(shù)據(jù)將被隨機(jī)洗一次。
-“每個(gè)時(shí)期”-在每個(gè)訓(xùn)練時(shí)期之前,將對(duì)數(shù)據(jù)進(jìn)行重新排序。
?默認(rèn)值為“一次”。
?
'CheckpointPath'
保存檢查點(diǎn)網(wǎng)絡(luò)的路徑。指定后,軟件會(huì)在每個(gè)時(shí)期后保存檢查點(diǎn)網(wǎng)絡(luò)。如果未指定,則不會(huì)保存任何檢查點(diǎn)。
?
'ExecutionEnvironment'
網(wǎng)絡(luò)的執(zhí)行環(huán)境。這確定了將使用哪些硬件資源來訓(xùn)練網(wǎng)絡(luò)。要使用GPU或計(jì)算集群,您必須具有Parallel Computing Toolbox(TM)。 GPU必須啟用CUDA,并具有3.0或更高的計(jì)算能力。
-'自動(dòng)'-如果有GPU,請(qǐng)使用GPU,否則請(qǐng)使用CPU。
-'gpu'-使用GPU。
-'cpu'-使用CPU。
-'multi-gpu'-使用本地并行池在一臺(tái)計(jì)算機(jī)上使用多個(gè)GPU。如果沒有打開池,則每個(gè)受支持的GPU設(shè)備將打開一個(gè)池,只有一個(gè)工作進(jìn)程。
-“并行”-使用計(jì)算群集。如果沒有打開池,則使用默認(rèn)群集配置文件打開一個(gè)池。如果池可以訪問GPU,則將使用它們,并且多余的工作線程將處于空閑狀態(tài)。如果池中沒有GPU,則將在所有群集CPU上進(jìn)行培訓(xùn)。
默認(rèn)為“自動(dòng)”。
?
'WorkerLoad'
適用于“多GPU”和“并行”執(zhí)行環(huán)境。
?
'OutputFcn'
-指定在每次迭代結(jié)束時(shí)在訓(xùn)練期間要調(diào)用的一個(gè)或多個(gè)函數(shù)。 通常,您可以使用輸出功能顯示或繪制進(jìn)度信息,或者確定是否應(yīng)盡早終止培訓(xùn)。 該函數(shù)將被傳遞一個(gè)包含當(dāng)前迭代信息的結(jié)構(gòu)。 它還可能返回true,這將觸發(fā)提前終止。
?
'Plots'
-訓(xùn)練期間要顯示的圖,指定為“訓(xùn)練進(jìn)行中”或“無”(默認(rèn))
?
'SequenceLength'
將小批量中的序列填充或截?cái)酁橹付ㄩL(zhǎng)度。 選項(xiàng)有:
-'longest'-將小批量中的所有序列填充到最長(zhǎng)序列的長(zhǎng)度。
-'shortest'-將小批量中的所有序列截短為最短序列的長(zhǎng)度。
-Positive integer-填充序列的長(zhǎng)度與最長(zhǎng)序列的長(zhǎng)度相同,然后分成指定長(zhǎng)度的較小序列。 如果發(fā)生拆分,則該函數(shù)會(huì)創(chuàng)建額外的迷你批。
默認(rèn)值為“最長(zhǎng)”。
?
'SequencePaddingValue'
-用于在必要時(shí)填充序列的標(biāo)量值。默認(rèn)值為0。
?
'DispatchInBackground'
-用于控制在讀取訓(xùn)練數(shù)據(jù)時(shí)是否使用異步預(yù)取排隊(duì)的標(biāo)量邏輯。默認(rèn)為false。需要并行計(jì)算工具箱。
?
例:
%創(chuàng)建一組訓(xùn)練選項(xiàng),以進(jìn)行具有動(dòng)量的隨機(jī)梯度下降訓(xùn)練。每5輪學(xué)習(xí)率將降低0.2倍。培訓(xùn)將持續(xù)20輪,每次迭代將使用一個(gè)包含300個(gè)觀察值的小批量。
options = trainingOptions('sgdm', ...
? ? ? ? ? ? ? ?'Plots', 'training-progress', ...
? ? ? ? ? ? ? ?'LearnRateSchedule', 'piecewise', ...
? ? ? ? ? ? ? ?'LearnRateDropFactor', 0.2, ...
? ? ? ? ? ? ? ?'LearnRateDropPeriod', 5, ...
? ? ? ? ? ? ? ?'MaxEpochs', 20, ...
? ? ? ? ? ? ? ?'MiniBatchSize', 300);
?
總結(jié)
以上是生活随笔為你收集整理的Matlab 训练深度学习模型函数 trainingOptions的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学(deep learning)基础
- 下一篇: 深度学习 卷积层与全连接层权重参数个数的