packages feed

hasktorch-0.2.2.0: hasktorch.cabal

cabal-version:       3.0
name:                hasktorch
version:             0.2.2.0
synopsis:            Haskell bindings to libtorch, supporting both typed and untyped tensors.
description:         Hasktorch is a library for tensors and neural networks in Haskell. It is an independent open source community project which leverages the core C++ libraries shared by PyTorch.
homepage:            https://github.com/hasktorch/hasktorch#readme
license:             BSD-3-Clause
license-file:        LICENSE
author:              Hasktorch Contributor Team
maintainer:          hasktorch@gmail.com
copyright:           2019 Austin Huang
category:            Codegen
build-type:          Custom
extra-source-files:
  CHANGELOG.md
  ./test/data/numpy_rawfile
  ./test/data/mnist-sample-labels-idx1-ubyte.gz
  ./test/data/mnist-sample-images-idx3-ubyte.gz

custom-setup
  setup-depends:
      base >= 4.9 && < 5
    , Cabal >= 3.10.1.0 && < 3.16
    , cabal-doctest >=1.0.9 && <1.1

Flag disable-doctest
 Description: Disable doctest. ToDo: This flag is to avoid relocation-error of ghci for macos.
 Default:     False
 Manual:      True

library
 exposed-modules:     Torch
                    , Torch.Tensor
                    , Torch.TensorOptions
                    , Torch.DType
                    , Torch.Device
                    , Torch.TensorFactories
                    , Torch.Functional
                    , Torch.Functional.Internal
                    , Torch.Initializers
                    , Torch.Autograd
                    , Torch.Optim
                    , Torch.Optim.CppOptim
                    , Torch.Vision
                    , Torch.NN
                    , Torch.NN.Recurrent.Cell.Elman
                    , Torch.NN.Recurrent.Cell.GRU
                    , Torch.NN.Recurrent.Cell.LSTM
                    , Torch.Scalar
                    , Torch.Backend
                    , Torch.Layout
                    , Torch.Cast
                    , Torch.Dimname
                    , Torch.Serialize
                    , Torch.Random
                    , Torch.Script
                    , Torch.HList
                    , Torch.Lens
                    , Torch.Typed
                    , Torch.Typed.Auxiliary
                    , Torch.Typed.Factories
                    , Torch.Typed.Functional
                    , Torch.Typed.NN
                    , Torch.Typed.NN.Convolution
                    , Torch.Typed.NN.Normalization
                    , Torch.Typed.NN.Recurrent
                    , Torch.Typed.NN.Recurrent.Auxiliary
                    , Torch.Typed.NN.Recurrent.Cell.LSTM
                    , Torch.Typed.NN.Recurrent.Cell.GRU
                    , Torch.Typed.NN.Recurrent.LSTM
                    , Torch.Typed.NN.Recurrent.GRU
                    , Torch.Typed.NN.Transformer
                    , Torch.Typed.NN.Linear
                    , Torch.Typed.NN.Dropout
                    , Torch.Typed.NN.Sparse
                    , Torch.Typed.NN.DataParallel
                    , Torch.Typed.Tensor
                    , Torch.Typed.Parameter
                    , Torch.Typed.Device
                    , Torch.Typed.DType
                    , Torch.Typed.Autograd
                    , Torch.Typed.Optim
                    , Torch.Typed.Optim.CppOptim
                    , Torch.Typed.Serialize
                    , Torch.Typed.Vision
                    , Torch.Typed.Lens
                    , Torch.Typed.NamedTensor
                    , Torch.Typed.VLTensor
                    , Torch.Distributions.Constraints
                    , Torch.Distributions.Distribution
                    , Torch.Distributions.Bernoulli
                    , Torch.Distributions.Categorical
                    , Torch.Data
                    , Torch.Data.Pipeline
                    , Torch.Data.StreamedPipeline
                    , Torch.Data.Utils
                    , Torch.Data.Internal
                    , Torch.Data.Dataset
                    , Torch.Data.CsvDatastream
                    , Torch.Tutorial
                    , Torch.Index
                    , Torch.Jit

 hs-source-dirs:      src
 default-language:    Haskell2010
 ghc-options:         -fplugin GHC.TypeLits.Normalise -fplugin GHC.TypeLits.KnownNat.Solver -fplugin GHC.TypeLits.Extra.Solver -fconstraint-solver-iterations=0 -fplugin GHC.NotExport.Plugin
 if os(darwin)
  cpp-options:        -D__APPLE__
 build-depends:       async >= 2.2.5 && < 2.3
                    , base >= 4.7 && < 5
                    , libtorch-ffi >= 2.0.2.0 && < 2.0.3
                    , libtorch-ffi-helper == 2.0.0.*
                    , finite-typelits >= 0.1 && < 0.3
                    , ghc-typelits-extra >= 0.4.6 && < 0.6
                    , ghc-typelits-knownnat >= 0.7.9 && < 0.9
                    , ghc-typelits-natnormalise >= 0.7.9 && < 0.10
                    , mtl >= 2.3.1 && < 2.4
                    , safe-exceptions >= 0.1.7 && < 0.2
                    , random >= 1.2.1 && < 1.4
                    , reflection >= 2.1 && < 2.2
                    , stm >= 2.5.1 && < 2.6
                    , JuicyPixels >= 3.3 && < 3.4
                    , vector >= 0.13 && < 0.14
                    , bytestring >= 0.11.5 && < 0.13
                    , safe-exceptions
                    , zlib >= 0.6 && < 0.8
                    , pipes >= 4.3.16 && < 4.4
                    , pipes-group >= 1.0.12 && < 1.1
                    , pipes-concurrency >= 2.0.14 && < 2.1
                    , pipes-safe >= 2.3.5 && < 2.4
                    , pipes-bytestring >= 2.1.7 && < 2.2
                    , pipes-csv >= 1.4.3 && < 1.5
                    , lens-family-core >= 2.1.3 && < 2.2
                    , cassava >= 0.5.3 && < 0.6
                    , lifted-async >= 0.10.2 && < 0.12
                    , monad-control >= 1.0.3 && < 1.1
                    , foldl >= 1.4 && < 1.5
                    , transformers-base >= 0.4.6 && < 0.5
                    , array >= 0.5.5 && < 0.6
                    , data-default-class >= 0.1 && < 0.3
                    , containers >= 0.6.7 && < 0.8
                    , inline-c >= 0.9.1 && < 0.10
                    , vector-sized >= 1.5 && < 1.7
                    , template-haskell >= 2.20.0 && < 2.24
                    , megaparsec >= 9.5 && < 9.8
                    , half >= 0.3 && < 0.4
                    , constraints >= 0.14 && < 0.15
                    , deepseq >= 1.4.8 && < 1.6

 default-extensions:  Strict
                    , StrictData

test-suite spec
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test
  main-is:            Spec.hs
  other-modules:      FactorySpec
                    , FunctionalSpec
                    , GradSpec
                    , InitializerSpec
                    , LensSpec
                    , OptimSpec
                    , SparseSpec
                    , ScriptSpec
                    , TensorSpec
                    , NNSpec
                    , DimnameSpec
                    , PipelineSpec
                    , Torch.Typed.AuxiliarySpec
                    , Torch.Typed.TensorSpec0
                    , Torch.Typed.TensorSpec1
                    , Torch.Typed.FactoriesSpec
                    , Torch.Typed.FunctionalSpec0
                    , Torch.Typed.FunctionalSpec1
                    , Torch.Typed.FunctionalSpec2
                    , Torch.Typed.AutogradSpec
                    , Torch.Typed.OptimSpec
                    , Torch.Typed.NNSpec
                    , Torch.Typed.NN.Recurrent.LSTMSpec
                    , Torch.Typed.NN.Recurrent.GRUSpec
                    , Torch.Typed.NN.Recurrent.Cell.LSTMSpec
                    , Torch.Typed.NN.Recurrent.Cell.GRUSpec
                    , Torch.Typed.NN.TransformerSpec
                    , Torch.Typed.VisionSpec
                    , Torch.Typed.NamedTensorSpec
                    , Torch.Typed.SerializeSpec
                    , SerializeSpec
                    , RandomSpec
                    , VisionSpec
                    , Torch.Distributions.ConstraintsSpec
                    , Torch.Distributions.BernoulliSpec
                    , Torch.Distributions.CategoricalSpec
                    , IndexSpec
  default-language: Haskell2010
  ghc-options:         -fplugin GHC.TypeLits.Normalise -fplugin GHC.TypeLits.KnownNat.Solver -fplugin GHC.TypeLits.Extra.Solver -fconstraint-solver-iterations=0
  if os(darwin)
   cpp-options:       -D__APPLE__
  build-depends:      base
                    , ghc-typelits-extra
                    , ghc-typelits-knownnat
                    , ghc-typelits-natnormalise
                    , hasktorch
                    , hspec
                    , libtorch-ffi
                    , mtl
                    , reflection
                    , safe-exceptions
                    , QuickCheck
                    , directory
                    , JuicyPixels
                    , inline-c-cpp
                    , async
                    , pipes
                    , random
                    , vector-sized
                    , lens-family-core
                    , data-default-class
                    , half
                    , vector

test-suite doctests
  if os(darwin) || flag(disable-doctest)
    Buildable: False
  else
    Buildable: True
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test
  main-is:            doctests.hs
  ghc-options:        -Wall -threaded -fplugin GHC.TypeLits.Normalise -fplugin GHC.TypeLits.KnownNat.Solver -fplugin GHC.TypeLits.Extra.Solver -fconstraint-solver-iterations=0
  default-language:   Haskell2010
  build-depends:      doctest >=0.16.0.1 && <0.25
                    , async
                    , base
                    , libtorch-ffi
                    , finite-typelits
                    , ghc-typelits-extra
                    , ghc-typelits-knownnat
                    , ghc-typelits-natnormalise
                    , mtl
                    , safe-exceptions
                    , random
                    , reflection
                    , stm
                    , JuicyPixels
                    , vector
                    , bytestring
                    , safe-exceptions
                    , zlib >= 0.6
                    , inline-c
                    , hasktorch

benchmark runtime
  type: exitcode-stdio-1.0
  main-is: Runtime.hs
  hs-source-dirs: bench
  build-depends:
      base
    , criterion
    , deepseq
    , hmatrix
    , mwc-random
    , vector
    , matrix
    , split
    , primitive
    , hasktorch
    , libtorch-ffi
  default-language: Haskell2010
  ghc-options: -Wall -threaded -rtsopts


benchmark alloc
  type: exitcode-stdio-1.0
  main-is: Alloc.hs
  hs-source-dirs: bench
  build-depends:
      base
    , deepseq
    , hmatrix
    , mwc-random
    , vector
    , weigh
    , split
    , primitive
    , hasktorch
    , libtorch-ffi
  default-language: Haskell2010
  ghc-options: -Wall -threaded -rtsopts