14 , cudaSupport ? torch.cudaSupport or false # by default uses the value from torch
18 inherit (torch.cudaPackages) cudatoolkit cudnn;
20 cudatoolkit_joined = symlinkJoin {
21 name = "${cudatoolkit.name}-unsplit";
22 paths = [ cudatoolkit.out cudatoolkit.lib ];
24 cudaArchStr = lib.optionalString cudaSupport lib.strings.concatStringsSep ";" torch.cudaArchList;
25 in buildPythonPackage rec {
26 pname = "torchvision";
29 src = fetchFromGitHub {
32 rev = "refs/tags/v${version}";
33 hash = "sha256-QlUAFAG6zEDCDSXR5n2CznspU3fT0kbqySzofGLPgK4=";
36 nativeBuildInputs = [ libpng ninja which ]
37 ++ lib.optionals cudaSupport [ cudatoolkit_joined ];
39 TORCHVISION_INCLUDE = "${libjpeg_turbo.dev}/include/";
40 TORCHVISION_LIBRARY = "${libjpeg_turbo}/lib/";
42 buildInputs = [ libjpeg_turbo libpng ]
43 ++ lib.optionals cudaSupport [ cudnn ];
45 propagatedBuildInputs = [ numpy pillow torch scipy ];
47 preBuild = lib.optionalString cudaSupport ''
48 export TORCH_CUDA_ARCH_LIST="${cudaArchStr}"
52 # tries to download many datasets for tests
56 HOME=$TMPDIR py.test test --ignore=test/test_datasets_download.py
59 checkInputs = [ pytest ];
62 description = "PyTorch vision library";
63 homepage = "https://pytorch.org/";
64 license = licenses.bsd3;
65 platforms = with platforms; linux ++ lib.optionals (!cudaSupport) darwin;
66 maintainers = with maintainers; [ ericsagnes ];