{"_id":"com.unity.sentis","name":"com.unity.sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","provider":"upm","versions":{"2.1.3":{"_upm":{"changelog":"### Added\n- Notice to docs announcing package rename to Inference Engine"},"unity":"2022.3","samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using ScheduleIterable to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use a job to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"unityRelease":"11f1","documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@2.1/manual/index.html","name":"com.unity.sentis","version":"2.1.3","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.17","com.unity.collections":"2.4.3","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"ac6218276191a17cb5a23a31c4c8306fc959b140","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-2.1.3.tgz"}},"2.1.2":{"_upm":{"changelog":"### Added\n- Support for accelerated inference using [DirectML](https://learn.microsoft.com/en-us/windows/ai/directml/dml) in future Unity versions\n- Support for RMSNormalization subgraph optimization\n\n### Changed\n- Some methods in the TextureConverter have been made obsolete\n\n### Fixed\n- Improved CPU backend performance by optimizing Burst job count\n- Reduced memory usage when serializing and deserializing large models\n- Shader issues on XBOX hardware\n- GPUPixel now reuses RenderTextures reducing garbage collection"},"unity":"2022.3","samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using ScheduleIterable to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use a job to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"unityRelease":"11f1","documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@2.1/manual/index.html","name":"com.unity.sentis","version":"2.1.2","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.17","com.unity.collections":"2.4.3","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"c51693b520678de462e1dbf1515869d9d63b6e96","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-2.1.2.tgz"}},"2.1.1":{"_upm":{"changelog":"### Fixed\n- Ordering of inputs now matches ONNX model consistently\n- Loading of models with constants over 500mb\n- Serialization of models over 2GB in size\n- Issues in example code in documentation\n- Shape inference for `Split` and `Select` operators\n- Profiler tags for operators are now consistent with lower overhead\n- `CopyOutput` can now be used on GPUPixel backend if the tensor is the correct shape"},"unity":"2022.3","samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using ScheduleIterable to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use a job to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"unityRelease":"11f1","documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@2.1/manual/index.html","name":"com.unity.sentis","version":"2.1.1","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.17","com.unity.collections":"2.4.3","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"d71b8bd74a3ad322f2b626d10a8d687d64381d0e","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-2.1.1.tgz"}},"2.1.0":{"_upm":{"changelog":"### Updated\n- Fast activation fusing for MatMul\n- Batched MatMul optimization\n- Faster Upload for CPUTensorData\n\n### Fixed\n- CPU Tensors were not properly disposed.\n- Reshaping of empty tensor\n- Exposed internal fields of TextureTensorData"},"unity":"2022.3","upmCi":{"footprint":"46d65ab2ae107fe9e5e1bbcef427f724c0f71ae2"},"samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using ScheduleIterable to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use a job to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"d18d9ace04a705be09febedbc79b6ed29813f757"},"unityRelease":"11f1","documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@2.1/manual/index.html","name":"com.unity.sentis","version":"2.1.0","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.17","com.unity.collections":"2.4.3","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"a9353f8ec25dd7e90d4e33a86cbc3b01b00293eb","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-2.1.0.tgz"}},"2.0.0":{"_upm":{"changelog":"### Added\n- Callbacks for retrieving the ONNX metadata at import time.\n- `Upload` method to `Tensor` to allow for direct upload of data.\n- `IndexSelect` functional operator.\n- `scoreThreshold` parameter for `NMS` functional method.\n- `Tensor.Reshape` accepts tensor shapes of different lengths, provided the capacity of the tensor data is large enough.\n- `Worker.CopyOutput` method for copying outputs into allocated tensors.\n- `FunctionalTensor.ToString` shows the data type and shape (if known) for debugging when using the functional API.\n\n### Changed\n- Made a generic `Tensor` class so that you can declare `Tensor<float>` and `Tensor<int>` rather than `TensorFloat` and `TensorInt`.\n- Reworked and unified the `Worker` methods for setting inputs and scheduling.\n- `IWorker` and `GenericWorker` to be an instantiable `Worker` class.\n- Renamed `Execute` to `Schedule` throughout for clarity.\n- Renamed `BurstTensorData` to `CPUTensorData` for consistency.\n- Renamed and reworked `SymbolicTensorShape` as `DynamicTensorShape` for clarity and ease of use.\n- Reworked the `Functional.Compile` method as methods on a `FunctionalGraph` object, for clearer declaration of inputs and outputs.\n\n### Fixed\n- Issues with the `Slice` operator on zero-length dimensions.\n- Compilation of the `GridSample` shaders on consoles.\n\n### Removed\n- `GPUCommandBuffer` backend, in favour of a unified GPUCompute backend using command buffers.\n- `IBackend` methods, use the functional API to create and edit models instead.\n- Many methods and classes from the public API to keep it clear and maintainable."},"type":"asset","unity":"2022.3","upmCi":{"footprint":"13a77c87df489691db6fca7c8b09c99aabfebee7"},"samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using ScheduleIterable to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use a job to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"7d10d2f2045b8ea96773e1178e8eb5e0929dd8c0"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@2.0/manual/index.html","name":"com.unity.sentis","version":"2.0.0","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.12","com.unity.collections":"2.2.1","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"b2074449d23c9e51eb59fd2e826b0f529bf6f29e","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-2.0.0.tgz"}},"1.6.0-pre.1":{"_upm":{"changelog":"### Added\n- SliceSet backend method for Concat and other operations.\n- Support for GridSample ONNX operator, Functional API and backend method, PaddingMode Enum for use with GridSample.\n- Methods to IModelStorage to allow retrieval of data types, tensor shapes and CPU values.\n- CPU backend to ExecutionContext for CPU fallback execution.\n- Optimization that replaces a Gather with a single index by a Split or Narrow.\n- Functional RandomChoice methods similar to numpy.\n- BitonicSort method for fast GPU sorting.\n\n### Changed\n- Model Input, Output, Layer and Constant indices are stored as integers rather than strings.\n- Min and Max no longer take more than 2 inputs in the backend, for more inputs use repeated application of the backend calls.\n- Optimized loading of compute functions for performance.\n- Reduced CPU allocations inside operations to avoid GC.\n- CPU fallback pass runs at worker instantiation rather than being serialized to the model.\n\n### Fixed\n- Many issues with Tensors of zero length and uploading/downloading data. They no longer have null backendData.\n- Issue where multiple Random layers were sometimes incorrectly collapsed to single layer by optimization pass.\n- NonMaxSuppression to have fast inference on CPU and GPUCompute backends.\n- Error messages for model deserialization.\n- Slice inference issues for slices of length 0.\n\n### Removed\n- Mean, Sum, Concat from the backend. Add, ScalarMad and SliceSet operations are used instead.\n- Unnecessary 'keepdim' argument from Reduce backend ops.\n- Constructor for Constant with a tensor argument.\n- CompleteOperationsAndDownload and similar methods from Tensor."},"type":"assets","unity":"2023.2","upmCi":{"footprint":"44c9da1e07094697d072e451eaf636a323a9e053"},"samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using `IBackend` to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"da61bfca399647f0c789ee715f0079890dfade83"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.6/manual/index.html","name":"com.unity.sentis","version":"1.6.0-pre.1","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.12","com.unity.collections":"1.2.4","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"a877fd7adf6112a41660a582ad3dd4accf9b69d9","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.6.0-pre.1.tgz"}},"1.5.0-pre.3":{"_upm":{"changelog":""},"type":"assets","unity":"2023.2","upmCi":{"footprint":"4db41df289c681757bd8c87694483ab7de3e9e29"},"samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using `IBackend` to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"4a23d4f7cfd98e560e22f27947ba326f53435865"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.5/manual/index.html","name":"com.unity.sentis","version":"1.5.0-pre.3","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.12","com.unity.collections":"1.2.4","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"797a992ecf6b7d611231d61d58fdd99d92bcc1d8","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.5.0-pre.3.tgz"}},"1.5.0-pre.2":{"_upm":{"changelog":"### Fixed\n- Fix linker error when doing a build"},"type":"assets","unity":"2023.2","upmCi":{"footprint":"5ecc75ae634840ecc6116e2784abfdbbb3d48705"},"samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using `IBackend` to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"c747875a1a8b40bb896cdf1c11c7e410310fb612"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.5/manual/index.html","name":"com.unity.sentis","version":"1.5.0-pre.2","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.12","com.unity.collections":"1.2.4","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"78c748fe2a8fb61710b18c352a61e1bc5b568b5d","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.5.0-pre.2.tgz"}},"1.4.0-pre.3":{"_upm":{"changelog":"### Fixed\n- Outdated documentation.\n- Error message for importing incompatible Sentis models.\n- NonMaxSuppression output tensor has correct shape.\n- Output of Size operator.\n\n### Removed\n- Non-working NonMaxSuppression GPUCompute optimizations."},"type":"assets","unity":"2023.2","upmCi":{"footprint":"915bc043a23a50c0731fafdd1d24be37731647c6"},"samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using `IBackend` to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"b3ce2a97bf5b494c26e93c162cfb10b5ee982f75"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.4/manual/index.html","name":"com.unity.sentis","version":"1.4.0-pre.3","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.12","com.unity.collections":"1.2.4","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"d36565014d731a8c6ace6f233867a60a00ae2f93","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.4.0-pre.3.tgz"}},"1.4.0-pre.2":{"_upm":{"changelog":"- Test fixes"},"type":"assets","unity":"2023.2","upmCi":{"footprint":"dd95a7b1dbbaaecbc6c8879c3a4cbf91a4edb28d"},"samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using `IBackend` to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"50ab08b77294dd88a60da0f867509f761edb37e0"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.4/manual/index.html","name":"com.unity.sentis","version":"1.4.0-pre.2","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.12","com.unity.collections":"1.2.4","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"f2ac60bec9aecfdb029c5cca04853735845a1dc5","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.4.0-pre.2.tgz"}},"1.4.0-pre.1":{"_upm":{"changelog":"### Added\n- Fast path for Scatter and Gather ops.\n- Quantization API for quantizing model weights to Float16 or Uint8.\n- TensorByte and TensorShort tensor types for quantization.\n- Pad operator to support 'axes' input, 'TensorInt' input and 'wrap' mode.\n- GeluFast op for tiny stories optimization.\n- Tensor 'Reshape' method for changing shape without backend.\n- Functional API for compiling models with torch-like syntax.\n- Analytics reporting on model import.\n\n### Changed\n- Reworked async API with awaitable methods on tensor readback.\n- Reworked tensor allocation scheme.\n- Renamed tensor fields and methods.\n- Reworked model serialization to use flatbuffers.\n- Random layers accept integer seed rather than float.\n- Improved NonMaxSuppression inference drastically and added GPUCompute backend.\n\n### Fixed\n- Dispatch limit issues on Split operator.\n- Optimization pass where Dense has transposed weights.\n- Import settings for Resize op on opset 10.\n- Links to external sources in docs.\n- Edge cases in ScatterElements and GatherElements infer correctly.\n- Conv operator going out of bounds on GPUCompute and GPUCommandBuffer.\n\n### Removed\n- Broken optimization pass for Dense > ScaleBias.\n- ArrayTensorData class and methods.\n- 'CreateWorker' method from model extensions.\n- Mapping of param symbolic tensor dims to original names.\n- Model API for adding inputs, constants, layers to model (in favour of Functional API).\n- Ops for tensor operations (in favour of Functional API)."},"type":"assets","unity":"2023.2","upmCi":{"footprint":"37efed2c75d71a402f23e53449a6be1f1e848f4c"},"samples":[{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using `IBackend` to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Quantize a model","description":"Example of serializing a quantized model to disk using a custom editor window and loading that quantized model at runtime.","displayName":"Quantize a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"},{"path":"Samples~/Use the functional API with an existing model","description":"An example of using the functional API to extend an existing model.","displayName":"Use the functional API with an existing model"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"aa807c1cb80872b70ccb2ac84e90f63a9d771ce3"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.4/manual/index.html","name":"com.unity.sentis","version":"1.4.0-pre.1","displayName":"Sentis","description":"Sentis is a neural network inference library. It enables you to import trained neural network models, connect the network inputs and outputs to your game code, and then run them locally in your end-user app. Use cases include capabilities like natural language processing, object recognition, automated game opponents, sensor data classification, and many more.\n\nSentis automatically optimizes your network for real-time use to speed up inference. It also allows you to tune your implementation further with tools like frame slicing, quantization, and custom backend (i.e. compute type) dispatching.\n\nVisit https://unity.com/sentis for more resources.","dependencies":{"com.unity.burst":"1.8.12","com.unity.collections":"1.2.4","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"bf3b8cdc96a6d84c735803f5e9c2d2b36cf76fb4","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.4.0-pre.1.tgz"}},"1.3.0-pre.3":{"_upm":{"changelog":"### Added\n- LoadModelDesc method in ModelLoader now public\n- TensorInt data type for Clip\n- Docs page for exporting models to ONNX format\n- Model sources in documentation\n- Editor menu with links to documentation and project submission form\n\n### Changed\n- clearOnInit default to false in tensor data pinning\n- NonZero asserts on command buffer as unsupported\n- Improved inspector for custom layers and allow horizontal scrolling\n- Rewrote docs and sample code for model execution in parts\n- Package description with links to project submission and email\n\n### Fixed\n- Thread group count for Split\n- Importer no longer fails when inspector is out of focus\n- Docstrings for accuracy\n- Broken links in documentation to onnx model zoo\n- Dense import step with transpose\n- Warnings for async methods in tensor data classes\n- Resize opset 10 imports with correct settings\n\n### Removed\n- Broken Dense to ScaleBias optimization"},"type":"assets","unity":"2023.2","upmCi":{"footprint":"e660cfde96e21fb8b160e24b79522810c4f66943"},"samples":[{"path":"Samples~/Add a custom layer","description":"An example of adding a custom layer to implement a custom ONNX operator.","displayName":"Add a custom layer"},{"path":"Samples~/Check the metadata of a model","description":"An example of checking the metadata of a model.","displayName":"Check the metadata of a model"},{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using Ops to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"e3865fddb75d9300ac7f264b2c0cb95b06b844a1"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.3/manual/index.html","name":"com.unity.sentis","version":"1.3.0-pre.3","displayName":"Sentis","description":"The Sentis package is a neural network inference library for Unity. You can use Sentis to import trained neural network models into Unity, then run them in real time locally on any platform Unity supports and in the Editor. You can run models on the GPU or the CPU.\n\nYou can use Sentis to run models that do style transfer, generate assets, automate non-player character (NPC) logic, and much more\n\nVisit https://discussions.unity.com/c/10 for updates and resources on Sentis, including a full sample project.","dependencies":{"com.unity.burst":"1.8.10","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"4ad137ed6fa8e171e20cc566fa9088fcb25c045d","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.3.0-pre.3.tgz"}},"1.3.0-pre.2":{"_upm":{"changelog":"### Fixed\n- Dependency not declared in package manifest"},"type":"assets","unity":"2023.2","upmCi":{"footprint":"566ed3e18274770ffbda5271d0c7609a8a8b01ee"},"samples":[{"path":"Samples~/Add a custom layer","description":"An example of adding a custom layer to implement a custom ONNX operator.","displayName":"Add a custom layer"},{"path":"Samples~/Check the metadata of a model","description":"An example of checking the metadata of a model.","displayName":"Check the metadata of a model"},{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using Ops to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"325ced29683fdc8d4a29b12e6ac8672c38fec74f"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.3/manual/index.html","name":"com.unity.sentis","version":"1.3.0-pre.2","displayName":"Sentis","description":"The Sentis package is a neural network inference library for Unity. You can use Sentis to import trained neural network models into Unity, then run them in real time locally on any platform Unity supports and in the Editor. You can run models on the GPU or the CPU.\n\nYou can use Sentis to run models that do style transfer, generate assets, automate non-player character (NPC) logic, and much more\n\nVisit https://discussions.unity.com/c/10 for updates and resources on Sentis, including a full sample project.","dependencies":{"com.unity.burst":"1.8.10","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"b25d5bc21728c8164ca1294b6dd952cd972e1ed5","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.3.0-pre.2.tgz"}},"1.3.0-pre.1":{"_upm":{"changelog":"### Added\n- Mad (multiply add) method added to Ops\n- Multinomial method added to Ops\n- TextureConverter ToTensor methods can accept allocated tensors as parameters\n- AddInput method with TensorShape parameter added to Model\n- UnknownOfRank method added to SymbolicTensorShape\n- Save method with Stream added to ModelWriter\n- SingleHeadAttention fused layer\n- Importer can handle external weight files for large models\n- Encrypted model sample project\n\n### Changed\n- Many Ops methods now accept generic Tensor types and infer output types\n- Added kernel shape to Conv layer\n- ONNXModelConverter takes model file path when instantiating\n- Concat parameter ordering in Ops method\n\n### Fixed\n- GatherElements inference fixed when not gathering on innermost axis\n- Optimizer pass for Einsum no longer breaks model\n- Reduce operator no longer incorrectly optimizes to Identity in edge case\n- ArgMax and ArgMin output data types correctly inferred as int\n- Pad import with empty constant pad fixed\n- Optimizer pass for removing duplicate layers and constants\n- Internal dlls no longer visible from outside package and no longer cause conflicts\n\n### Removed\n- Dependencies on experimental code"},"type":"assets","unity":"2023.2","upmCi":{"footprint":"4d455afa51b056946189af1feba2ec31b4215318"},"samples":[{"path":"Samples~/Add a custom layer","description":"An example of adding a custom layer to implement a custom ONNX operator.","displayName":"Add a custom layer"},{"path":"Samples~/Check the metadata of a model","description":"An example of checking the metadata of a model.","displayName":"Check the metadata of a model"},{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using Ops to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Encrypt a model","description":"Example of serializing an encrypted model to disk using a custom editor window and loading that encrypted model at runtime.","displayName":"Encrypt a model"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"3a1c6fb010b07078298cdf026ec90acf00ae2732"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.3/manual/index.html","name":"com.unity.sentis","version":"1.3.0-pre.1","displayName":"Sentis","description":"The Sentis package is a neural network inference library for Unity. You can use Sentis to import trained neural network models into Unity, then run them in real time locally on any platform Unity supports and in the Editor. You can run models on the GPU or the CPU.\n\nYou can use Sentis to run models that do style transfer, generate assets, automate non-player character (NPC) logic, and much more\n\nVisit https://discussions.unity.com/c/10 for updates and resources on Sentis, including a full sample project.","dependencies":{"com.unity.burst":"1.8.10","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"0d0257681c24034bb5d3fc940035587c2ebaad4a","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.3.0-pre.1.tgz"}},"1.2.0-exp.2":{"_upm":{"changelog":"### Added\n- Fast inference path for 1D Resize\n- OneHot operator now supports float tensors properly\n- Import for LayerNormalization operator\n- Import for Gelu operator\n- Optimized ScalarMad layer with optimizer passes\n\n### Removed\n- Watermark on Unity scenes referencing Sentis\n- License key requirement for Sentis\n\n### Changed\n- Moved CPU fallback pass to mandatory optimizer passes and remove MakeReadable calls in layer inference\n- Binary search for allocator speedup\n- Cached compute func instances for inference speedup\n- Refactored AxisNormalization to be LayerNormalization\n\n### Fixed\n- Import settings for Upsample operator\n- Condition for fast inference path for 2D Resize on CPU\n- Inspector no longer crashes when model can't be imported\n- Serialize to streaming assets now correctly uses optimal path and doesn't crash the editor with large models\n- Serialize to streaming assets creates directory if it doesn't exist and refreshes asset database"},"type":"assets","unity":"2021.3","upmCi":{"footprint":"c2e02c97cf47bb362ddb0fc4ade5c964ae58e17d"},"samples":[{"path":"Samples~/Add a custom layer","description":"An example of adding a custom layer to implement a custom ONNX operator.","displayName":"Add a custom layer"},{"path":"Samples~/Check the metadata of a model","description":"An example of checking the metadata of a model.","displayName":"Check the metadata of a model"},{"path":"Samples~/Convert tensors to textures","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Convert textures to tensors","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Copy a texture tensor to the screen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Do an operation on a tensor","description":"An example of using Ops to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Read output asynchronously","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Run a model","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Run a model a layer at a time","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Use Burst to write data","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Use a compute buffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Use tensor indexing methods","description":"Examples of using tensor indexing methods to get and set tensor values.","displayName":"Use tensor indexing methods"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"03a4bb1ba45958aea199062458cacd5b9796e6f4"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.2/manual/index.html","name":"com.unity.sentis","version":"1.2.0-exp.2","displayName":"Sentis","description":"The Sentis package is a neural network inference library for Unity. You can use Sentis to import trained neural network models into Unity, then run them in real time locally on any platform Unity supports and in the Editor. You can run models on the GPU or the CPU.\n\nYou can use Sentis to run models that do style transfer, generate assets, automate non-player character (NPC) logic, and much more\n\nVisit https://discussions.unity.com/c/10 for updates and resources on the Sentis beta, including a full sample project.","dependencies":{"com.unity.burst":"1.8.4","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"74ac0f12d99023ff1f3fb355adb0e33340056251","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.2.0-exp.2.tgz"}},"1.1.1-exp.2":{"_upm":{"changelog":"### Fixed\n- Fixed inference with multiple Conv layers with different attributes in same model\n- Fixed inference for AveragePool and MaxPool with large channel counts on GPUPixel\n- Fixed batched MatMul inference on GPUCompute and GPUCommandBuffer\n- Fixed Conv inference with no bias on GPUCompute and GPUCommandBuffer\n- Fixed inspector view when model can't be loaded\n- Made Mode.Load(FileStream) added"},"type":"assets","unity":"2021.3","upmCi":{"footprint":"59db4e298a5f971102dbe534aa6470e70b7c9fe3"},"samples":[{"path":"Samples~/Projects/CustomLayer","description":"An example of adding a custom layer to implement a custom ONNX operator.","displayName":"Add a custom layer"},{"path":"Samples~/Projects/ModelMetadata","description":"An example of checking the metadata of a model.","displayName":"Check the metadata of a model"},{"path":"Samples~/Projects/TensorToTexture","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Projects/TextureToTensor","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Projects/RunModelOnFullScreen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Projects/ExecuteOperatorOnTensor","description":"An example of using Ops to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Projects/AsyncReadback","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Projects/ModelExecutionInParts","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Projects/ModelExecution","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Projects/ComputeBuffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Projects/CSharpJob","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Projects/TensorIndexing","description":"Examples of using tensor indexing methods to get and set tensor values. ","displayName":"Use tensor indexing methods"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"a15a29371756a97c1fc4d1229e416623e86bddd7"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.1/manual/index.html","name":"com.unity.sentis","version":"1.1.1-exp.2","displayName":"Sentis","description":"The Sentis package is a neural network inference library for Unity. You can use Sentis to import trained neural network models into Unity, then run them in real time locally on any platform Unity supports and in the Editor. You can run models on the GPU or the CPU.\n\nYou can use Sentis to run models that do style transfer, generate assets, automate non-player character (NPC) logic, and much more\n\nVisit https://discussions.unity.com/c/10 for updates and resources on the Sentis beta, including a full sample project.","dependencies":{"com.unity.burst":"1.8.4","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"d78c939a43553d991e0cd1b21c6f69924ee7c6aa","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.1.1-exp.2.tgz"}},"1.1.0-exp.2":{"_upm":{"changelog":"### Changed \n - Documentation was updated to 1.1.0"},"type":"assets","unity":"2021.3","upmCi":{"footprint":"c28498f47a63ca7418068f89ee5d8df84cbeb863"},"samples":[{"path":"Samples~/Projects/CustomLayer","description":"An example of adding a custom layer to implement a custom ONNX operator.","displayName":"Add a custom layer"},{"path":"Samples~/Projects/ModelMetadata","description":"An example of checking the metadata of a model.","displayName":"Check the metadata of a model"},{"path":"Samples~/Projects/TensorToTexture","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Projects/TextureToTensor","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Projects/RunModelOnFullScreen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Projects/ExecuteOperatorOnTensor","description":"An example of using Ops to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Projects/AsyncReadback","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Projects/ModelExecutionInParts","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Projects/ModelExecution","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Projects/ComputeBuffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Projects/CSharpJob","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Projects/TensorIndexing","description":"Examples of using tensor indexing methods to get and set tensor values. ","displayName":"Use tensor indexing methods"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"ce9cf13fb4ddbd9113fa99fce2162e815e49e8ab"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.1/manual/index.html","name":"com.unity.sentis","version":"1.1.0-exp.2","displayName":"Sentis","description":"The Sentis package is a neural network inference library for Unity. You can use Sentis to import trained neural network models into Unity, then run them in real time locally on any platform Unity supports and in the Editor. You can run models on the GPU or the CPU.\n\nYou can use Sentis to run models that do style transfer, generate assets, automate non-player character (NPC) logic, and much more\n\nVisit https://discussions.unity.com/c/10 for updates and resources on the Sentis beta, including a full sample project.","dependencies":{"com.unity.burst":"1.8.4","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"df1dc0be985308d9d8b719d1b29ca984c178607e","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.1.0-exp.2.tgz"}},"1.0.0-exp.6":{"_upm":{"changelog":"### Added\n- Adding samples in package"},"type":"assets","unity":"2021.3","upmCi":{"footprint":"0bfbefac4b9bae2399ba1b947d94f3f468c62e08"},"samples":[{"path":"Samples~/Projects/CustomLayer","description":"An example of adding a custom layer to implement a custom ONNX operator.","displayName":"Add a custom layer"},{"path":"Samples~/Projects/ModelMetadata","description":"An example of checking the metadata of a model.","displayName":"Check the metadata of a model"},{"path":"Samples~/Projects/TensorToTexture","description":"Examples of converting tensors to textures.","displayName":"Convert tensors to textures"},{"path":"Samples~/Projects/TextureToTensor","description":"Examples of converting textures to textures.","displayName":"Convert textures to tensors"},{"path":"Samples~/Projects/RunModelOnFullScreen","description":"An example of using TextureConverter.RenderToScreen to copy a texture tensor to the screen.","displayName":"Copy a texture tensor to the screen"},{"path":"Samples~/Projects/ExecuteOperatorOnTensor","description":"An example of using IOps to do an operation on a tensor.","displayName":"Do an operation on a tensor"},{"path":"Samples~/Projects/AsyncReadback","description":"Examples of reading the output from a model asynchronously, using compute shaders or Burst.","displayName":"Read output asynchronously"},{"path":"Samples~/Projects/ModelExecutionInParts","description":"An example of using StartManualSchedule to run a model a layer a time.","displayName":"Run a model a layer at a time"},{"path":"Samples~/Projects/ModelExecution","description":"Examples of running models with different numbers of inputs and outputs.","displayName":"Run a model"},{"path":"Samples~/Projects/ComputeBuffer","description":"An example of using a compute shader to write data to a tensor on the GPU.","displayName":"Use a compute buffer"},{"path":"Samples~/Projects/CSharpJob","description":"An example of using Burst to write data to a tensor in the Job system.","displayName":"Use Burst to write data"},{"path":"Samples~/Projects/TensorIndexing","description":"Examples of using tensor indexing methods to get and set tensor values. ","displayName":"Use tensor indexing methods"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/UnityInferenceEngine.git","type":"git","revision":"7254ee1e27538837d15c427c516ba830233f6c9c"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.sentis@1.0/manual/index.html","name":"com.unity.sentis","version":"1.0.0-exp.6","displayName":"Sentis","description":"Sentis is lightweight and cross-platform Neural Net inference library. Sentis supports inference both on GPU and CPU.","dependencies":{"com.unity.burst":"1.8.4","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.imageconversion":"1.0.0"},"dist":{"shasum":"5405f748c91ed07389d6fa75b9ae5e42687db454","tarball":"https://download.packages.unity.com/com.unity.sentis/-/com.unity.sentis-1.0.0-exp.6.tgz"}}},"time":{"2.1.3":"2025-05-16T11:27:09.949Z","2.1.2":"2025-02-03T12:28:27.119Z","2.1.1":"2024-11-14T10:32:06.560Z","2.1.0":"2024-09-10T15:17:02.917Z","2.0.0":"2024-08-22T17:30:01.000Z","1.6.0-pre.1":"2024-07-19T16:00:35.000Z","1.5.0-pre.3":"2024-06-11T18:40:07.000Z","1.5.0-pre.2":"2024-05-24T08:49:27.000Z","1.4.0-pre.3":"2024-04-09T21:03:51.000Z","1.4.0-pre.2":"2024-04-06T20:14:35.000Z","1.4.0-pre.1":"2024-04-06T15:20:46.000Z","1.3.0-pre.3":"2024-01-19T16:20:22.000Z","1.3.0-pre.2":"2023-11-23T22:13:54.000Z","1.3.0-pre.1":"2023-11-16T13:03:35.000Z","1.2.0-exp.2":"2023-09-20T23:52:28.000Z","1.1.1-exp.2":"2023-09-05T14:09:54.000Z","1.1.0-exp.2":"2023-08-17T17:13:33.000Z","1.0.0-exp.6":"2023-06-27T12:22:04.000Z"},"dist-tags":{"latest":"2.1.3"},"etag":"\"13047-TlVK6PmFmnbdmsyDuS4tkD6JE1c\""}