This is the development branch of DiffSharp 1.0.
NOTE: This branch is undergoing development. It has incomplete code, functionality, and design that are likely to change without notice.
DiffSharp is normally used from an F# Jupyter notebook. You can simply open examples directly in the browser, e.g.
To use locally in Visual Studio Code:
After opening an
Ctrl-Shift-Pfor the command palette and chose
Reopen Editoer With...then
.NET Interactive Notebooks
To restart the kernel use
restartfrom the command palette.
To use locally in Jupyter, first install Jupyter and then:
dotnet tool install -g --add-source "https://dotnet.myget.org/F/dotnet-try/api/v3/index.json" microsoft.dotnet-interactive dotnet interactive jupyter install
When using .NET Interactive it is best to completely turn off automatic HTML displays of outputs:
Formatter.SetPreferredMimeTypeFor(typeof<obj>, "text/plain") Formatter.Register(fun x writer -> fprintfn writer "%120A" x )
You can also use DiffSharp from a script or an application. Here are some example scripts with appropriate package references:
Available packages and backends
Now reference an appropriate nuget package from https://nuget.org:
DiffSharp-lite- This is the reference backend.
DiffSharp-cpu- This includes the Torch backend using CPU only.
For all but
DiffSharp-lite add the following to your code:
Using a pre-installed or self-built LibTorch 1.8.0
The Torch CPU and CUDA packages above are large. If you already have
libtorch 1.8.0 available on your machine you can
LD_LIBRARY_PATHto include a directory containing the relevant
torch_cuda.so, or execute NativeLibrary.Load on
Developing DiffSharp Libraries
To develop libraries built on DiffSharp, do the following:
DiffSharp.Datain your library code.
DiffSharp.Backends.Referencein your correctness testing code.
libtorch-cpuin your CPU testing code.
libtorch-cuda-windowsin your (optional) GPU testing code.