/// <summary> /// Run a single cycle on the environment after the delay. /// </summary> /// <param name="nDelay">Specifies a delay to wait before running.</param> /// <returns>The results of the run containing the action are returned.</returns> public ResultCollection RunOne(int nDelay = 1000) { m_mycaffe.CancelEvent.Reset(); DqnAgent <T> agent = new DqnAgent <T>(m_icallback, m_mycaffe, m_properties, m_random, Phase.TRAIN); agent.Run(Phase.TEST, 1, ITERATOR_TYPE.ITERATION, TRAIN_STEP.NONE); agent.Dispose(); return(null); }
/// <summary> /// Train the network using a modified PG training algorithm optimized for GPU use. /// </summary> /// <param name="nN">Specifies the number of iterations (based on the ITERATION_TYPE) to run, or -1 to ignore.</param> /// <param name="type">Specifies the iteration type (default = ITERATION).</param> /// <param name="step">Specifies the stepping mode to use (when debugging).</param> /// <returns>A value of <i>true</i> is returned when handled, <i>false</i> otherwise.</returns> public bool Train(int nN, ITERATOR_TYPE type, TRAIN_STEP step) { m_mycaffe.CancelEvent.Reset(); DqnAgent <T> agent = new DqnAgent <T>(m_icallback, m_mycaffe, m_properties, m_random, Phase.TRAIN); agent.Run(Phase.TRAIN, nN, type, step); agent.Dispose(); return(false); }
/// <summary> /// Run a set of iterations and return the resuts. /// </summary> /// <param name="nN">Specifies the number of samples to run.</param> /// <param name="runProp">Optionally specifies properties to use when running.</param> /// <param name="type">Returns the data type contained in the byte stream.</param> /// <returns>The results of the run containing the action are returned as a byte stream.</returns> public byte[] Run(int nN, PropertySet runProp, out string type) { m_mycaffe.CancelEvent.Reset(); DqnAgent <T> agent = new DqnAgent <T>(m_icallback, m_mycaffe, m_properties, m_random, Phase.RUN); byte[] rgResults = agent.Run(nN, out type); agent.Dispose(); return(rgResults); }
/// <summary> /// Run the test cycle - currently this is not implemented. /// </summary> /// <param name="nN">Specifies the number of iterations (based on the ITERATION_TYPE) to run, or -1 to ignore.</param> /// <param name="type">Specifies the iteration type (default = ITERATION).</param> /// <returns>A value of <i>true</i> is returned when handled, <i>false</i> otherwise.</returns> public bool Test(int nN, ITERATOR_TYPE type) { int nDelay = 1000; string strProp = m_properties.ToString(); // Turn off the num-skip to run at normal speed. strProp += "EnableNumSkip=False;"; PropertySet properties = new PropertySet(strProp); m_mycaffe.CancelEvent.Reset(); DqnAgent <T> agent = new DqnAgent <T>(m_icallback, m_mycaffe, properties, m_random, Phase.TRAIN); agent.Run(Phase.TEST, nN, type, TRAIN_STEP.NONE); agent.Dispose(); Shutdown(nDelay); return(true); }