Closed
Description
🐛 Bug
Error C2491: definition of dllimport function not allowed
when trying to build torchvision
]
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/optim/rmsprop.h(52): warning C4251: 'torch::optim::RMSprop::grad_average_buffers' : class 'std::vector<at::Tensor,std::allocator<_Ty>>' nécessite une interface DLL pour être utilisé(e) par les clients de class 'torch::optim::RMSprop'
with
[
_Ty=at::Tensor
]
C:\Python37\lib\site-packages\torch\include\ATen/core/Tensor.h(388): note: voir la déclaration de 'std::vector<at::Tensor,std::allocator<_Ty>>'
with
[
_Ty=at::Tensor
]
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/optim/sgd.h(31): warning C4275: interface non dll class 'torch::optim::Optimizer' utilisée comme base d'une interface dll class 'torch::optim::SGD'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/optim/optimizer.h(100): note: voir la déclaration de 'torch::optim::Optimizer'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/optim/sgd.h(31): note: voir la déclaration de 'torch::optim::SGD'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/optim/sgd.h(45): warning C4251: 'torch::optim::SGD::momentum_buffers' : class 'std::vector<at::Tensor,std::allocator<_Ty>>' nécessite une interface DLL pour être utilisé(e) par les clients de class 'torch::optim::SGD'
with
[
_Ty=at::Tensor
]
C:\Python37\lib\site-packages\torch\include\ATen/core/Tensor.h(388): note: voir la déclaration de 'std::vector<at::Tensor,std::allocator<_Ty>>'
with
[
_Ty=at::Tensor
]
Including torch/torch.h for C++ extensions is deprecated. Please include torch/extension.h
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(28): warning C4251: 'vision::models::_resnetimpl::BasicBlock::downsample' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::BasicBlock'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(30): warning C4251: 'vision::models::_resnetimpl::BasicBlock::conv1' : class 'torch::nn::Conv2d' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::BasicBlock'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/conv.h(144): note: voir la déclaration de 'torch::nn::Conv2d'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(30): warning C4251: 'vision::models::_resnetimpl::BasicBlock::conv2' : class 'torch::nn::Conv2d' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::BasicBlock'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/conv.h(144): note: voir la déclaration de 'torch::nn::Conv2d'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(31): warning C4251: 'vision::models::_resnetimpl::BasicBlock::bn1' : class 'torch::nn::BatchNorm' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::BasicBlock'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/batchnorm.h(98): note: voir la déclaration de 'torch::nn::BatchNorm'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(31): warning C4251: 'vision::models::_resnetimpl::BasicBlock::bn2' : class 'torch::nn::BatchNorm' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::BasicBlock'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/batchnorm.h(98): note: voir la déclaration de 'torch::nn::BatchNorm'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(51): warning C4251: 'vision::models::_resnetimpl::Bottleneck::downsample' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::Bottleneck'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(53): warning C4251: 'vision::models::_resnetimpl::Bottleneck::conv1' : class 'torch::nn::Conv2d' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::Bottleneck'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/conv.h(144): note: voir la déclaration de 'torch::nn::Conv2d'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(53): warning C4251: 'vision::models::_resnetimpl::Bottleneck::conv2' : class 'torch::nn::Conv2d' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::Bottleneck'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/conv.h(144): note: voir la déclaration de 'torch::nn::Conv2d'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(53): warning C4251: 'vision::models::_resnetimpl::Bottleneck::conv3' : class 'torch::nn::Conv2d' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::Bottleneck'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/conv.h(144): note: voir la déclaration de 'torch::nn::Conv2d'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(54): warning C4251: 'vision::models::_resnetimpl::Bottleneck::bn1' : class 'torch::nn::BatchNorm' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::Bottleneck'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/batchnorm.h(98): note: voir la déclaration de 'torch::nn::BatchNorm'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(54): warning C4251: 'vision::models::_resnetimpl::Bottleneck::bn2' : class 'torch::nn::BatchNorm' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::Bottleneck'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/batchnorm.h(98): note: voir la déclaration de 'torch::nn::BatchNorm'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(54): warning C4251: 'vision::models::_resnetimpl::Bottleneck::bn3' : class 'torch::nn::BatchNorm' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::_resnetimpl::Bottleneck'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/batchnorm.h(98): note: voir la déclaration de 'torch::nn::BatchNorm'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(188): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>::conv1' : class 'torch::nn::Conv2d' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/conv.h(144): note: voir la déclaration de 'torch::nn::Conv2d'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(188): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>::bn1' : class 'torch::nn::BatchNorm' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/batchnorm.h(98): note: voir la déclaration de 'torch::nn::BatchNorm'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(188): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>::fc' : class 'torch::nn::Linear' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/linear.h(54): note: voir la déclaration de 'torch::nn::Linear'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(188): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>::layer1' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(188): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>::layer2' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(188): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>::layer3' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(188): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>::layer4' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::BasicBlock>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(196): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>::conv1' : class 'torch::nn::Conv2d' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/conv.h(144): note: voir la déclaration de 'torch::nn::Conv2d'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(196): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>::bn1' : class 'torch::nn::BatchNorm' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/batchnorm.h(98): note: voir la déclaration de 'torch::nn::BatchNorm'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(196): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>::fc' : class 'torch::nn::Linear' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/linear.h(54): note: voir la déclaration de 'torch::nn::Linear'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(196): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>::layer1' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(196): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>::layer2' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(196): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>::layer3' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(196): warning C4251: 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>::layer4' : class 'torch::nn::Sequential' nécessite une interface DLL pour être utilisé(e) par les clients de struct 'vision::models::ResNetImpl<vision::models::_resnetimpl::Bottleneck>'
C:\Python37\lib\site-packages\torch\include\torch\csrc\api\include\torch/nn/modules/sequential.h(360): note: voir la déclaration de 'torch::nn::Sequential'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(22): warning C4273: 'expansion' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(33): note: voir la définition précédente de 'public: static int vision::models::_resnetimpl::BasicBlock::expansion'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(22): error C2491: 'vision::models::_resnetimpl::BasicBlock::expansion' : définition de données membres static dllimport non autorisée
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(23): warning C4273: 'expansion' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(56): note: voir la définition précédente de 'public: static int vision::models::_resnetimpl::Bottleneck::expansion'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(23): error C2491: 'vision::models::_resnetimpl::Bottleneck::expansion' : définition de données membres static dllimport non autorisée
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(32): warning C4273: 'vision::models::_resnetimpl::BasicBlock::BasicBlock' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(35): note: voir la définition précédente de '{ctor}'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(63): warning C4273: 'vision::models::_resnetimpl::Bottleneck::Bottleneck' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(58): note: voir la définition précédente de '{ctor}'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(87): warning C4273: 'vision::models::_resnetimpl::Bottleneck::forward' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(66): note: voir la définition précédente de 'forward'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(106): warning C4273: 'vision::models::_resnetimpl::BasicBlock::forward' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(43): note: voir la définition précédente de 'forward'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(124): warning C4273: 'vision::models::ResNet18Impl::ResNet18Impl' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(189): note: voir la définition précédente de '{ctor}'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(127): warning C4273: 'vision::models::ResNet34Impl::ResNet34Impl' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(193): note: voir la définition précédente de '{ctor}'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(130): warning C4273: 'vision::models::ResNet50Impl::ResNet50Impl' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(197): note: voir la définition précédente de '{ctor}'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(133): warning C4273: 'vision::models::ResNet101Impl::ResNet101Impl' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(201): note: voir la définition précédente de '{ctor}'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(136): warning C4273: 'vision::models::ResNet152Impl::ResNet152Impl' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(205): note: voir la définition précédente de '{ctor}'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(141): warning C4273: 'vision::models::ResNext50_32x4dImpl::ResNext50_32x4dImpl' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(209): note: voir la définition précédente de '{ctor}'
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.cpp(146): warning C4273: 'vision::models::ResNext101_32x8dImpl::ResNext101_32x8dImpl' : liaison DLL incohérente
C:\Users\Jonas\Desktop\vision\torchvision\csrc\models\resnet.h(215): note: voir la définition précédente de '{ctor}'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.21.27702\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
C:\Users\Jonas\Desktop\vision>
To Reproduce
Steps to reproduce the behavior:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
set NVCC_FLAGS=-D__CUDA_NO_HALF_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_50,code=sm_50 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_50,code=compute_50
python setup.py install
Expected behavior
Environment
- PyTorch Version (e.g., 1.0): '1.2.0.dev20190701'
- OS (e.g., Linux): windows
- How you installed PyTorch (
conda
,pip
, source): pip - Build command you used (if compiling from source):
- Python version: 3.7.3
- CUDA/cuDNN version: 10.1
- GPU models and configuration: 940mx
- Any other relevant information: