Reinforcement Learning
ml-agents
TensorBoard
ONNX
Pyramids
deep-reinforcement-learning
ML-Agents-Pyramids
Instructions to use AnnaMats/ppo-Pyramids-Training with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ml-agents
How to use AnnaMats/ppo-Pyramids-Training with ml-agents:
mlagents-load-from-hf --repo-id="AnnaMats/ppo-Pyramids-Training" --local-dir="./download: string[]s"
- Notebooks
- Google Colab
- Kaggle
ppo-Pyramids-Training / com.unity.ml-agents.extensions /Runtime /Input /InputActuatorEventContext.cs
| using System; | |
| using Unity.Collections; | |
| using UnityEngine.InputSystem; | |
| using UnityEngine.InputSystem.LowLevel; | |
| using UnityEditor; | |
| namespace Unity.MLAgents.Extensions.Input | |
| { | |
| /// <summary> | |
| /// This interface is passed to InputActionActuators to allow them to write to InputEvents. | |
| /// The way this interface should be used is to request the <see cref="InputEventPtr"/> by calling | |
| /// <see cref="GetEventForFrame"/> then call <see cref="EventProcessedInFrame"/> before returning from | |
| /// </summary> | |
| public class InputActuatorEventContext : IDisposable | |
| { | |
| /// <summary> | |
| /// The number of times to allow the use of an event before queuing it in the InputSystem. | |
| /// </summary> | |
| public readonly int NumTimesToProcess; | |
| public readonly InputDevice InputDevice; | |
| NativeArray<byte> m_EventBuffer; | |
| InputEventPtr m_Ptr; | |
| int m_Count; | |
| public static InputActuatorEventContext s_EditorContext = new InputActuatorEventContext(); | |
| public InputActuatorEventContext(int numTimesToProcess = 1, InputDevice device = null) | |
| { | |
| NumTimesToProcess = numTimesToProcess; | |
| InputDevice = device; | |
| m_Count = 0; | |
| m_Ptr = new InputEventPtr(); | |
| m_EventBuffer = new NativeArray<byte>(); | |
| } | |
| /// <summary> | |
| /// Returns the <see cref="InputEventPtr"/> to write to for the current frame. | |
| /// </summary> | |
| /// <returns>The <see cref="InputEventPtr"/> to write to for the current frame.</returns> | |
| public IDisposable GetEventForFrame(out InputEventPtr eventPtr) | |
| { | |
| if (!EditorApplication.isPlaying) | |
| { | |
| eventPtr = new InputEventPtr(); | |
| } | |
| if (m_Count % NumTimesToProcess == 0) | |
| { | |
| m_Count = 0; | |
| m_EventBuffer = StateEvent.From(InputDevice, out m_Ptr); | |
| } | |
| eventPtr = m_Ptr; | |
| return this; | |
| } | |
| public void Dispose() | |
| { | |
| if (!EditorApplication.isPlaying) | |
| { | |
| return; | |
| } | |
| m_Count++; | |
| if (m_Count == NumTimesToProcess && m_Ptr.valid) | |
| { | |
| InputSystem.QueueEvent(m_Ptr); | |
| m_EventBuffer.Dispose(); | |
| } | |
| } | |
| } | |
| } | |