private void CreateTrainer(int inputDimention) { if (_inputDimention != inputDimention) { _inputDimention = inputDimention; _model.AlterInputDimention(inputDimention); } _trainer = new MotionGenerator.Algorithm.Reinforcement.TemporalDifferenceQTrainer( epsilon: _randomActionProbability, qNetwork: _model, historySize: _historySize, discountRatio: _discountRatio, actionDimention: Actions.Count, replaySize: 32, alpha: _optimizerAlpha, rewardWeights: _soulWeights, optimizerType: _optimizerType, enableRandomForgetting: _enableRandomForgetting, initialHistory: _historySaveData != null ? _historySaveData.Select(x => x.Instantiate()).ToList() : null ); _historySaveData = null; //FIXME(kogaki): _historySaveDataをインスタンス変数に持たないようにしたい }