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 you can 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:obj) (writer: TextWriter) -> fprintfn writer "%120A" x )
You can also use DiffSharp from a script or an application. Here are some example scripts with appropriate package references:
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. -
DiffSharp-cuda-linux
,DiffSharp-cuda-windows
- These include the Torch CPU/GPU backend for Linux and Windows respectively. Large download.
For all but DiffSharp-lite
add the following to your code:
dsharp.config(backend=Backend.Torch)
The Torch CPU and CUDA packages above are large. If you already have libtorch
1.5.0 available on your machine you can
-
reference
DiffSharp-lite
-
set
LD_LIBRARY_PATH
to include a directory containing the relevanttorch_cpu.so
andtorch_cuda.so
. -
use
dsharp.config(backend=Backend.Torch)
To develop libraries built on DiffSharp, do the following:
-
reference
DiffSharp.Core
(and nothing else) in your library code. -
reference
DiffSharp.Backends.Reference
in your correctness testing code. -
reference
DiffSharp.Backends.Torch
andlibtorch-cpu
in your CPU testing code. -
reference
DiffSharp.Backends.Torch
andlibtorch-cuda-linux
orlibtorch-cuda-windows
in your (optional) GPU testing code.