StellarXipher/Assets/Packages/System.Numerics.Tensors.9.0.0/PACKAGE.md
2025-02-12 19:41:54 -05:00

54 lines
1.9 KiB
Markdown

## About
Provides methods for performing mathematical operations over _tensors_ represented as spans. These methods are accelerated to use SIMD (Single instruction, multiple data) operations supported by the CPU where available.
## Key Features
* Numerical operations on tensors represented as `ReadOnlySpan<float>`
* Element-wise arithmetic: Add, Subtract, Multiply, Divide, Exp, Log, Cosh, Tanh, etc.
* Tensor arithmetic: CosineSimilarity, Distance, Dot, Normalize, Softmax, Sigmoid, etc.
## How to Use
```C#
using System.Numerics.Tensors;
var movies = new[] {
new { Title="The Lion King", Embedding= new [] { 0.10022575f, -0.23998135f } },
new { Title="Inception", Embedding= new [] { 0.10327095f, 0.2563685f } },
new { Title="Toy Story", Embedding= new [] { 0.095857024f, -0.201278f } },
new { Title="Pulp Function", Embedding= new [] { 0.106827796f, 0.21676421f } },
new { Title="Shrek", Embedding= new [] { 0.09568083f, -0.21177962f } }
};
var queryEmbedding = new[] { 0.12217915f, -0.034832448f };
var top3MoviesTensorPrimitives =
movies
.Select(movie =>
(
movie.Title,
Similarity: TensorPrimitives.CosineSimilarity(queryEmbedding, movie.Embedding)
))
.OrderByDescending(movies => movies.Similarity)
.Take(3);
foreach (var movie in top3MoviesTensorPrimitives)
{
Console.WriteLine(movie);
}
```
## Main Types
The main types provided by this library are:
* `System.Numerics.Tensors.TensorPrimitives`
## Additional Documentation
* [API documentation](https://learn.microsoft.com/dotnet/api/system.numerics.tensors)
## Feedback & Contributing
System.Numerics.Tensors is released as open source under the [MIT license](https://licenses.nuget.org/MIT). Bug reports and contributions are welcome at [the GitHub repository](https://github.com/dotnet/runtime).