Beispiel #1
0
    // Use this for initialization
    void Start()
    {
        PPONetworkContinuousSimple network;

        if (environment.is3D)
        {
            network             = new PPONetworkContinuousSimple(8, 2, 2, 32, DeviceDescriptor.CPUDevice, 0.01f);
            model               = new PPOModel(network);
            trainer             = new TrainerPPOSimple(model, LearnerDefs.AdamLearner(learningRate), 1, 10000, 200);
            trainer.ClipEpsilon = 0.1f;
        }
        else
        {
            network = new PPONetworkContinuousSimple(5, 2, 2, 32, DeviceDescriptor.CPUDevice, 0.01f);
            model   = new PPOModel(network);
            trainer = new TrainerPPOSimple(model, LearnerDefs.AdamLearner(learningRate), 1, 10000, 200);
        }



        //test
        //trainer.RewardDiscountFactor = 0.5f;

        loss            = new AutoAverage(iterationForEachTrain);
        episodePointAve = new AutoAverage(episodeToRunForEachTrain);
    }
Beispiel #2
0
    // Use this for initialization
    void Start()
    {
        environment.isContinuou = false;
        QNetworkSimple network = new QNetworkSimple(2, 2, 2, 64, DeviceDescriptor.CPUDevice, 0.4f);

        model = new DQLModel(network);
        //QNetworkSimple networkTarget = new QNetworkSimple(2, 2, 2, 64, DeviceDescriptor.CPUDevice, 1f);
        //modelTarget = new DQLModel(networkTarget);
        //trainer = new TrainerDQLSimple(model, null, LearnerDefs.MomentumSGDLearner(startLearningRate,0.9f),1, experienceBufferSize, 500);
        trainer = new TrainerDQLSimple(model, modelTarget, LearnerDefs.AdamLearner(startLearningRate), 1, experienceBufferSize, 500);
        //Save();//test
    }
Beispiel #3
0
    // Use this for initialization
    void Start()
    {
        QNetworkSimple network = new QNetworkSimple(6, 3, 2, 64, DeviceDescriptor.GPUDevice(0), 0.4f);

        model = new DQLModel(network);
        QNetworkSimple networkTarget = new QNetworkSimple(6, 3, 2, 64, DeviceDescriptor.GPUDevice(0), 0.4f);

        modelTarget = new DQLModel(networkTarget);
        //trainer = new TrainerDQLSimple(model, null, LearnerDefs.SGDLearner(startLearningRate),1, experienceBufferSize, 2048);
        trainer = new TrainerDQLSimple(model, modelTarget, LearnerDefs.AdamLearner(startLearningRate), 1, experienceBufferSize, experienceBufferSize);
        //Save();//test
    }
Beispiel #4
0
    // Use this for initialization
    void Start()
    {
        var network = new PPONetworkDiscreteSimple(6, 3, 4, 64, DeviceDescriptor.CPUDevice, 0.01f);

        model   = new PPOModel(network);
        trainer = new TrainerPPOSimple(model, LearnerDefs.AdamLearner(learningRate), 1, 50000, 2000);

        //test
        //trainer.RewardDiscountFactor = 0.5f;

        loss            = new AutoAverage(iterationForEachTrain);
        episodePointAve = new AutoAverage(episodeToRunForEachTrain);
    }
Beispiel #5
0
    // Use this for initialization
    void Start()
    {
        //QNetworkSimple network = new QNetworkSimple(environment.mazeDimension.x* environment.mazeDimension.y, 4, 3, 64, DeviceDescriptor.CPUDevice, 0.4f);
        var network = new QNetworkConvSimple(environment.mazeDimension.x, environment.mazeDimension.y, 1,
                                             4, new int[] { 3, 3 }, new int[] { 64, 128 }, new int[] { 1, 1 }, new bool[] { true, true }, 1, 128,
                                             false, DeviceDescriptor.GPUDevice(0), 1f);

        model = new DQLModel(network);
        //QNetworkSimple networkTarget = new QNetworkSimple(environment.mazeDimension.x * environment.mazeDimension.y, 4, 3, 64, DeviceDescriptor.CPUDevice, 0.4f);
        //modelTarget = new DQLModel(networkTarget);
        //trainer = new TrainerDQLSimple(model, modelTarget, LearnerDefs.SGDLearner(startLearningRate), 1, experienceBufferSize, 500);
        trainer = new TrainerDQLSimple(model, null, LearnerDefs.SGDLearner(startLearningRate), 1, experienceBufferSize, 500);
        //Save();//test
    }
    public void CreateResnode()
    {
        var input = new InputLayerDense(2);

        //outputLayer = new OutputLayerDenseBayesian(1);
        outputLayer = new OutputLayerDense(1, null, OutputLayerDense.LossFunction.Square);

        network = new SequentialNetworkDense(input, LayerDefineHelper.DenseLayers(10, 5, true, NormalizationMethod.None), outputLayer, DeviceDescriptor.CPUDevice);
        //network = new SequentialNetworkDense(input, LayerDefineHelper.ResNodeLayers(10, 5), outputLayer, DeviceDescriptor.CPUDevice);

        trainer = new TrainerSimpleNN(network, LearnerDefs.AdamLearner(lr), DeviceDescriptor.CPUDevice);

        dataPlane.network = this;
    }
Beispiel #7
0
 public void CreateGAN()
 {
     gan        = new GAN(2, 0, 2, 10, 5, 10, 5, DeviceDescriptor.GPUDevice(0));
     trainerGan = new TrainerGAN(gan, LearnerDefs.AdamLearner(lrGenerator), LearnerDefs.AdamLearner(lrDiscriminator), DeviceDescriptor.GPUDevice(0));
     trainerGan.usePredictionInTraining = true;
 }