14#ifndef RECURRENTNEURALNET3
15#define RECURRENTNEURALNET3
28 #define arcs_assert(a) (assert(a))
31 #define EventLogVar(a)
50 NnDropout DropOutEnable = NnDropout::DISABLE
56 : Dataset(TSD), RNNin(), RNNL1(), RNNout()
77 RNNin.InitWeight(Nin);
79 RNNout.InitWeight(30);
86 for(
size_t i = 1; i <= Epch; ++i){
92 for(
size_t t = 1; t <= Wind; ++t){
93 RNNin.PropagateForward(Dataset.
InputData, t);
95 RNNout.PropagateForwardForOutput(RNNin.z);
98 RNNout.PropagateBackwardForOutput(Dataset.
TrainData);
99 for(
size_t t = Wind; 1 <= t; --t){
100 RNNin.PropagateBackward(RNNout.dLde, t);
104 RNNin.UpdateWeightAndBias(Dataset.
InputData);
105 RNNout.UpdateWeightAndBiasForOutput(RNNin.z);
107 if(i % 10 == 1) RNNout.DispError();
109 RNNin.ClearStateVars();
110 RNNout.ClearStateVars();
123 static constexpr size_t EpchDisp = 10;
#define PassedLog()
イベントログ用マクロ(ファイルと行番号のみ記録版)
Definition ARCSeventlog.hh:26
ActvFunc
活性化関数のタイプの定義
Definition ActivationFunctions.hh:35
NnInitTypes
重み初期化のタイプの定義
Definition NeuralNetParamDef.hh:19
NnDropout
ドロップアウトの定義
Definition NeuralNetParamDef.hh:35
NnDescentTypes
勾配降下法のタイプの定義
Definition NeuralNetParamDef.hh:25
再帰ニューラルレイヤクラス
Definition RecurrentNeuralLayer.hh:62
クラステンプレート
Definition RecurrentNeuralNet3.hh:52
RecurrentNeuralNet3(RecurrentNeuralNet3 &&r)
ムーブコンストラクタ
Definition RecurrentNeuralNet3.hh:63
~RecurrentNeuralNet3()
デストラクタ
Definition RecurrentNeuralNet3.hh:70
void Train(void)
誤差逆伝播法による訓練をする関数
Definition RecurrentNeuralNet3.hh:75
RecurrentNeuralNet3(TimeSeriesDatasets< Nin, Nout, Tlen, Wind, Mbat > &TSD)
コンストラクタ
Definition RecurrentNeuralNet3.hh:55
機械学習用 時系列データセットクラス
Definition TimeSeriesDatasets.hh:50
Matrix< M, K > TrainData
ベクトル配列版の標準化済み訓練データ(範囲 t = 1 … W, t = 0 と W + 1 の分も確保)
Definition TimeSeriesDatasets.hh:54
std::array< Matrix< M, N >, W+2 > InputData
ベクトル配列版の標準化済み入力データ(範囲 t = 1 … W, t = 0 と W + 1 の分も確保)
Definition TimeSeriesDatasets.hh:53