示例#1
0
        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をインスタンス変数に持たないようにしたい
        }