函式名稱:fann_set_train_stop_function()
適用版本:FANN >= 2.1.0
用法:fann_set_train_stop_function(resource $ann, int $train_stop_function)
此函式用於設定神經網路訓練過程中的停止函式。停止函式用於在訓練過程中判斷是否應該停止訓練。可以選擇使用以下幾種停止函式:
FANN_STOPFUNC_MSE:基於均方誤差的停止函式,當均方誤差低於指定閾值時停止訓練。
FANN_STOPFUNC_BIT:基於錯誤位元數的停止函式,當錯誤位元數低於指定閾值時停止訓練。
引數說明:
- $ann:神經網路資源,透過fann_create_standard()等函式建立。
- $train_stop_function:停止函式型別,可以是FANN_STOPFUNC_MSE或FANN_STOPFUNC_BIT。
示例:
$ann = fann_create_standard(3, 2, 1); // 建立一個具有3個層次、2個輸入和1個輸出的神經網路
// 設定停止函式為基於均方誤差的停止函式,並指定閾值為0.01
fann_set_train_stop_function($ann, FANN_STOPFUNC_MSE);
fann_set_train_stop_value($ann, 0.01);
// 載入訓練資料
$fann_train_data = fann_read_train_from_file("training_data.data");
// 開始訓練,直到達到停止條件
$max_epochs = 1000; // 最大迭代次數
$epochs_between_reports = 10; // 每隔10次迭代報告一次狀態
fann_train_on_data($ann, $fann_train_data, $max_epochs, $epochs_between_reports, 0.01);
// 訓練完成後可以使用神經網路進行預測等操作
// 釋放資源
fann_destroy($ann);
以上示例中,我們建立了一個具有3個層次、2個輸入和1個輸出的神經網路。然後設定停止函式為基於均方誤差的停止函式,並指定了閾值為0.01。接著載入訓練資料,使用fann_train_on_data()函式開始訓練,直到達到停止條件(最大迭代次數或達到指定的誤差閾值)。最後釋放資源。