tch 0.16.0

Rust wrappers for the PyTorch C++ api (libtorch).
Documentation
# Changelog
This documents the main changes to the `tch` crate.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased
### Changed

## v0.16.0
### Changed
- PyTorch v2.3 support

## v0.15.0
### Changed
- PyTorch v2.2 support

## v0.14.0
### Changed
- PyTorch v2.1 support
  [803]https://github.com/LaurentMazare/tch-rs/pull/803.
- Add a `pyo3-tch` crate for interacting with Python via PyO3
  [730]https://github.com/LaurentMazare/tch-rs/pull/730.
- Expose the cuda fuser enabled flag,
  [728]https://github.com/LaurentMazare/tch-rs/pull/728.
- Improved the safetensor error wrapping,
  [720]https://github.com/LaurentMazare/tch-rs/pull/720.

## v0.13.0 - 2023-05-18
### Added
- Support static linking in the build script,
  [712]https://github.com/LaurentMazare/tch-rs/pull/712.
- Make the libtorch download opt-in rather than a default behavior. The libtorch
  library download can still be triggered by enabling the `download-libtorch`
  feature, [707]https://github.com/LaurentMazare/tch-rs/pull/707.
- Rename the `of_...` conversion functions to `from_...` so as to be closer to
  the Rust best practices,
  [706]https://github.com/LaurentMazare/tch-rs/pull/706. This is a breaking
  change and will require modifying calls such as `of_slice` to be `from_slice`
  instead.
- Expose some functions so that Python extensions that operates on PyTorch
  tensors can be written with `tch`,
  [704]https://github.com/LaurentMazare/tch-rs/pull/704.
- Rework the torch-sys build script making it easier to leverage a Python
  PyTorch install as a source for libtorch,
  [703]https://github.com/LaurentMazare/tch-rs/pull/703.

## v0.12.0 - 2023-05-10
### Changed
- EfficientNet models have been reworked, pre-trained models used `safetensors`
  weight by default, [679]https://github.com/LaurentMazare/tch-rs/pull/679.
- None can be used for nullable scalar types,
  [680]https://github.com/LaurentMazare/tch-rs/pull/680.
- Automated conversion of list arguments: all the generated functions that take
  as input a slice of int or float can now be used directly with int values or
  fixed length arrays [682]https://github.com/LaurentMazare/tch-rs/pull/682.
- Replace the `From<Tensor>` traits with some `TryFrom` versions,
  [683]https://github.com/LaurentMazare/tch-rs/pull/683. This is a breaking
  change, note that also the old version would flatten the tensor if needed to
  reduce the number of dimensions, this has to be done explicitely with the new
  version.

## v0.11.0 - 2023-03-20
### Added
- Adapt to C++ PyTorch library (`libtorch`) version `v2.0.0`.
### Changed
- Update the `half` dependency to version `2`, [646]https://github.com/LaurentMazare/tch-rs/pull/646.

## v0.10.3 - 2023-02-23
### Added
- Add some helper functions in a utils module to check the available devices and versions.

## v0.10.2 - 2023-02-19
### Added
- Add the `eps` and `amsgrad` options to Adam, [600]https://github.com/LaurentMazare/tch-rs/pull/600.
### Changed
- Fix loading of `VarStore` when using `Mps` devices, [623]https://github.com/LaurentMazare/tch-rs/pull/623.
- Use `ureq` instead of `curl` to reduce compile times, [620]https://github.com/LaurentMazare/tch-rs/pull/620.
- Fix the handling of dicts in TorchScript, [597]https://github.com/LaurentMazare/tch-rs/issues/597.

## v0.10.1 - 2022-12-12
### Changed
- Default `vs.load` to use the Python weight format when the file extension is `.pt` or `.bin`.

## v0.10.0 - 2022-12-12
### Added
- Expose functions for setting manual seeds for CUDA devices, [#500]https://github.com/LaurentMazare/tch-rs/pull/500.
- Expose functions for triggering manual sync, [#500]https://github.com/LaurentMazare/tch-rs/pull/500.
- Add some functions to load Python weight files.
### Changed
- Extending the Kaiming initialization, [#573]https://github.com/LaurentMazare/tch-rs/pull/573.

## v0.9.0 - 2022-11-05
### Changed
- Adapt to C++ PyTorch library (`libtorch`) version `v1.13.0`.

## v0.8.0 - 2022-07-04
### Changed
- Adapt to C++ PyTorch library (`libtorch`) version `v1.12.0`.

## v0.7.2 - 2022-05-16
### Changed
- Adapt to C++ PyTorch library (`libtorch`) version `v1.11.0`.

## v0.6.1 - 2021-10-25
### Changed
- Adapt to C++ PyTorch library (`libtorch`) version `v1.10.0`.

## v0.5.0 - 2021-06-25
### Changed
- Adapt to C++ PyTorch library (`libtorch`) version `v1.9.0`.

## v0.4.1 - 2021-05-08
### Changed
- Adapt to C++ PyTorch library (`libtorch`) version `v1.8.1`.