AssertionError: torch not compiled with Cuda enabled error occurs because of using cuda GPU enable syntax over normal PyTorch (CPU only ). There are multiple scenarios where you can get this error. Sometimes CUDA enablement is clear and visible. This is easy to fix by making it false or removing the same. But in some scenarios, It is indirectly calling Cuda which is explicitly not visible. Hence There we need to understand the internal working of such parameter or function which is causing the issue. Anyways in this article, we will go throw the most common reasons.
Solution 1: Switching from CUDA to normal version –
Usually while compiling any neural network in PyTorch, we can pass cuda enable. If we simply remove the same it will remove the error. Refer to the below example, If you are using a similar syntax pattern then remove Cuda while compiling the neural network.
from torch import nn
net = nn.Sequential(
nn.Linear(18*18, 80),
nn.ReLU(),
nn.Linear(80, 80),
nn.ReLU(),
nn.Linear(80, 10),
nn.LogSoftmax()
).cuda()
The correct way is –
Solution 2: Installing cuda supported Pytorch –
See the bottom line is that if you are facing such an incompatibility issue either you adjust your code according to available libraries in the system. Or we install the compatible libraries in our system to get rid of the same error.
You may any package managers to install cuda supported pytorch. Use any of the below commands –
conda –
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch
pip –
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
Solution 3: set pin_memory=False –
This is one of the same categories where CUDA is not visible directly. But Internally if it is True then it copies the tensors into CUDA space for processing. To Avoid the same we have to make it False. Once more thing, By Default it is True. Hence we have to explicitly make it False while using the get_iterator function in DataLoader class.
torch not compiled with cuda enabled ( Similar Error )-
There are so many errors that have similar solutions but because of the specification added it looks bit different. Hence to avoid confusion, Here are some variations:
- Platform specifications: This error has generic solution with most of the platform like win10, mac, linux etc.
- Addition Modules: Sometimes we get this error in intermediate modules like detectron2 etc. But the solution will be generic in all the cases.
- Hardware Specifications: Not Only the Platform but the Underlying hardware like processors like AMD, Jetson, etc have the same impact and solution.
Benefits of CUDA with Torch –
CUDA is a parallel processing framework which provides an application interface to deal with the graphic card utility of the system. In complex operations like deep learning model training where we have to run operations like backpropagation, we need multiprocessing. GPU provides great support for multiprocessing for that we need CUDA (NVIDIA). PyTorch or Tensorflow or any other deep learning framework required GPU handling for high performance. However, it works fine with the CPU in case of small datasets, fewer epochs, etc. But Typically the dataset for any state of art algorithm is usually large in volume. Hence we need CUDA with PyTorch ( Python binding of Torch).
Thanks
Data Science Learner Team
Join our list
Subscribe to our mailing list and get interesting stuff and updates to your email inbox.
We respect your privacy and take protecting it seriously
Thank you for signup. A Confirmation Email has been sent to your Email Address.
Something went wrong.
Table of Contents
Hide
- Why this error occurs?
-
Code Example
- Solutions
- Related Posts
In this article we will see the code solutions for Pytorch assertionerror torch not compiled with cuda enabled.
Why this error occurs?
Cuda is a toolkit which allows GPU to take charge of applications and increase the performance. In order to work with it, it’s essential to have Cuda supported Nvidia GPU installed in your system. Also Pytorch should also support GPU acceleration.
This assertionerror occurs when we try to use cuda on Pytorch version which is for CPU only. So, you have two options to resolve this error –
- Use Pytorch version which is compatible to Cuda. Download right stable version from here.
- Disable Cuda from your code. This could turn out to be tricky as you might not be using Cuda directly but some of the library in your project may. So, you need to troubleshoot that.
Error Code – Let’s first reproduce the error –
1. cuda passed as function parameter –
import torch my_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]], dtype=torch.float32, device="cuda") print(my_tensor)
The above code will throw error – assertionerror: torch not compiled with cuda enabled. Here is the complete output –
Traceback (most recent call last): File "C:/Users/aka/project/test.py", line 3, in <module> my_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]], dtype=torch.float32, device="cuda") File "C:Usersakaanaconda3envsdeeplearninglibsite-packagestorchcuda__init__.py", line 166, in _lazy_init raise AssertionError("Torch not compiled with CUDA enabled") AssertionError: Torch not compiled with CUDA enabled
This is because we set the flag device="cuda"
. If we change it to cpu like device="cpu"
then the error will disappear.
2. Dependency using pytorch function with cuda enabled
There are many pytorch functions which copy data to Cuda memory for faster performance. They are generally disabled by default but some dependency of your project could be using those functions and enabling them. So, you need to look into that dependency and disable from there.
For example, torch.utils.data.DataLoader
class has parameter pin_memory
which, according to pytorch documentation says –
pin_memory (bool, optional) – If
True
, the data loader will copy Tensors into device/CUDA pinned memory before returning them.
If a function using this class and setting pin_memory=true, then we will get torch not compiled with cuda enabled error.
Solutions
1. Check Pytorch version
First of all check if you have installed the right version. Pytorch is available with or without Cuda.
2. Check if Cuda is available in installed Pytorch
Use this code to check if cuda is available in your installed Pytorch –
print(torch.cuda.is_available())
3. Create new project environment
Due to a lot of troubleshooting and error handling to resolve bugs, we break our project environment. Try creating a new environment if it solves your Cuda error.
4. Using .cuda()
function
Some pytorch functions could be run on GPU by passing them through .cuda()
. For example, neural network sequential() function could be run on cuda. So, append or remove it according to your use case –
model = nn.Sequential(OrderedDict([ ('conv1', nn.Conv2d(1,20,5)), ('relu1', nn.ReLU()), ('conv2', nn.Conv2d(20,64,5)), ('relu2', nn.ReLU()) ])).cuda()
5. Provide correct device parameter
If a function expects a device parameter then you may provide cuda or cpu according to your use case –
import torch my_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]], dtype=torch.float32, device="cpu") print(my_tensor)
This is Akash Mittal, an overall computer scientist. He is in software development from more than 10 years and worked on technologies like ReactJS, React Native, Php, JS, Golang, Java, Android etc. Being a die hard animal lover is the only trait, he is proud of.
Related Tags
- Error,
- python error,
- python-short
PyTorch with CUDA is a version of the PyTorch library that has been compiled with support for the NVIDIA CUDA platform, which provides hardware acceleration for computationally intensive tasks such as machine learning and data processing.
The AssertionError: torch not compiled with cuda enabled error occurs when you use PyTorch library that has not been compiled with support for CUDA, a parallel computing platform and API for GPUs.
There are numerous situations in which you might encounter this issue. Sometimes CUDA support is obvious.
However, in some cases, it indirectly calls CUDA, which is expressly concealed.
How to fix AssertionError: torch not compiled with cuda enabled
You can fix the AssertionError: torch not compiled with cuda enabled error by installing the necessary libraries using this command: conda install -c pytorch torchvision cudatoolkit=10.1 pytorch.
import torch
print(torch.__version__)
my_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]], dtype=torch.float32, device="cpu")
print(my_tensor)
torch.cuda.is_available()
We first imported the PyTorch library in the above code example and then printed its version.
Then, we created a tensor with two rows and three columns using the torch.tensor() method.
The data type of the tensor is set to torch.float32, and the device is set to “cpu”.
Finally, we call the torch.cuda.is_available() method to check if CUDA is available on the system.
The output of the print(torch.__version__) statement will be a string indicating the version of PyTorch that is installed.
Printed the output representing the created tensor with the values and data type information.
The output of torch.cuda.is_available() method will be a boolean value indicating whether CUDA is available on the system (True if it is available, False otherwise).
Output
We verified the installation of CUDA by using the torch.cuda.is_available() function is not installed on my machine because it returns False.
The alternate solution for this problem is to use the following command.
pip install torch===1.5.0 torchvision===0.6.0 -f https://download.pytorch.org/whl/torch_stable.html
If the issue persists, then you can try installing the following command.
conda install cudatoolkit
In some cases, you need to install the “cpuonly” package, which needs to be removed.
Make sure that CUDA and PyTorch are installed in the correct environment, or try reinstalling both with the correct versions.
I hope these solutions will resolve the issues you are having.
I. Introduction
Taking into account: 1Pycharm is comprehensive than the Spyder function, 2Naconda’s environmental configuration is convenient, these two factors, so you want to introduce Conda Environment in Pycharm to make full use of Anaconda’s library functions.
butAfter Pycharm is imported into the Anaconda environment, run the program, report error,AssertionError: Torch not compiled with CUDA enabled
Second, analyze problems
1. View report error
The error enlargement is that the CUDA does not work when compiling Torch.
But before this, I have successfully installed CUDA and PYTORCH, and I have successfully checked under the Anaconda Prompt terminal, and I installed Pytorch can be supported by CUDA.
So where is the problem? ? ?
2. Reflections
1 When I remember the Pytorch (GPU version), I first created a virtual environment, and the role of this virtual environment is to isolate external operations, which is equivalent to build a separate space. Then I installed Pytorch (GPU version) installed in this virtual environment.
(Install Pytorch Reference Article:Install Pytorch under Windows (GPU Acceleration Edition)
2 This means that I introduce Conda Environment on Pycharm, there is no way to use Pytorch (GPU version), because Pytorch (GPU version) has been isolated by the virtual environment.
In order to confirm the above conjecture, I need to check if INACONDA PROMPT’s basic environment is installed with Pytorch (GPU version)
After checking, there is no Pytorch (GPU version) in the basic environment of Anaconda, so Pycharm has no way to use Pytorch (GPU version) even if Conda Environment is introduced.
Third, solve the problem
Because of the basic environment of Anaconda, no Pytorch (GPU version) is installed, causing Torch, which cannot be supported in Pycharm, so I intend to install Pytorch directly in the base environment.
1. In the basic environment of the Anaconda PROMPT terminal, run the following instructions and install Pytorch (GPU version)
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
2. After the installation is complete, check if it is successful.
It can be seen that in the basic environment of Anaconda, the Pytorvh (GPU version) is successfully installed (GPU version)
3. Run the Pycharm program again, but new errors
New mistake:Key already registered with the same priority : GroupSpatialSoftmax
wrong reason:It should be in the compilation environment of Pycharm, there is a plurality of Torch files, which conflicts in the priority of running programs.
4. Solve priority conflicts
step1:
Delete the Pytorch (GPU version) installed by Anaconda, including an Anaconda’s basic environment, Pytorch virtual environment, all Pytorch files on Anaconda Navigator
a. Delete Pytorch (GPU version) under the Anaconda Prompt terminal, the command is as follows
conda remove --name pytorch --all
b. Remove the Pytorch (GPU version) in the Pytorch virtual environment, the command is as follows
conda activate pytorch # Activate a Pytorch virtual environment, here Pytorch refers to the name of the Pytorch virtual environment originally created
conda remove --name pytorch --all # Delete Pytorch (GPU) version in the virtual environment
conda deactivate # Close the virtual environment
c. Delete Pytorch on Anaconda Navigator (GPU Version)
Search pytorch, remove pick, delete
step2:
Delete Pytorch (GPU Edition) installed in Pycharm, commands as follows
pip uninstall torch
At this point, running the Python program on Pycharm has no priority conflict, but still can’t use pytorch, we need to reinstall Pytorch (GPU version)
5. Reinstall Pytorch (GPU version)
After deleting the Pytorch (GPU version) in Anaconda and Pycharm, then enter the terminal of Anaconda Prompt, reinstall the Pytorch (GPU version), the command is as follows
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
After installation, run the Python program again on Pycharm, no longer report:AssertionError: Torch not compiled with CUDA enabled。
Note Pycharm can use the CUDA supported Pytorch.
I figured out this is a popular question, but still I couldn’t find a solution for that.
I’m trying to run a simple repo Here which uses PyTorch
. Although I just upgraded my Pytorch to the latest CUDA version from pytorch.org (1.2.0
), it still throws the same error. I’m on Windows 10 and use conda with python 3.7.
raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
How to fix the problem?
Here is my conda list
:
# Name Version Build Channel
_ipyw_jlab_nb_ext_conf 0.1.0 py37_0 anaconda
_pytorch_select 1.1.0 cpu anaconda
_tflow_select 2.3.0 mkl anaconda
absl-py 0.7.1 pypi_0 pypi
alabaster 0.7.12 py37_0 anaconda
anaconda 2019.07 py37_0 anaconda
anaconda-client 1.7.2 py37_0 anaconda
anaconda-navigator 1.9.7 py37_0 anaconda
anaconda-project 0.8.3 py_0 anaconda
argparse 1.4.0 pypi_0 pypi
asn1crypto 0.24.0 py37_0 anaconda
astor 0.8.0 pypi_0 pypi
astroid 2.2.5 py37_0 anaconda
astropy 3.2.1 py37he774522_0 anaconda
atomicwrites 1.3.0 py37_1 anaconda
attrs 19.1.0 py37_1 anaconda
babel 2.7.0 py_0 anaconda
backcall 0.1.0 py37_0 anaconda
backports 1.0 py_2 anaconda
backports-csv 1.0.7 pypi_0 pypi
backports-functools-lru-cache 1.5 pypi_0 pypi
backports.functools_lru_cache 1.5 py_2 anaconda
backports.os 0.1.1 py37_0 anaconda
backports.shutil_get_terminal_size 1.0.0 py37_2 anaconda
backports.tempfile 1.0 py_1 anaconda
backports.weakref 1.0.post1 py_1 anaconda
beautifulsoup4 4.7.1 py37_1 anaconda
bitarray 0.9.3 py37he774522_0 anaconda
bkcharts 0.2 py37_0 anaconda
blas 1.0 mkl anaconda
bleach 3.1.0 py37_0 anaconda
blosc 1.16.3 h7bd577a_0 anaconda
bokeh 1.2.0 py37_0 anaconda
boto 2.49.0 py37_0 anaconda
bottleneck 1.2.1 py37h452e1ab_1 anaconda
bzip2 1.0.8 he774522_0 anaconda
ca-certificates 2019.5.15 0 anaconda
certifi 2019.6.16 py37_0 anaconda
cffi 1.12.3 py37h7a1dbc1_0 anaconda
chainer 6.2.0 pypi_0 pypi
chardet 3.0.4 py37_1 anaconda
cheroot 6.5.5 pypi_0 pypi
cherrypy 18.1.2 pypi_0 pypi
click 7.0 py37_0 anaconda
cloudpickle 1.2.1 py_0 anaconda
clyent 1.2.2 py37_1 anaconda
colorama 0.4.1 py37_0 anaconda
comtypes 1.1.7 py37_0 anaconda
conda 4.7.11 py37_0 anaconda
conda-build 3.18.9 py37_3 anaconda
conda-env 2.6.0 1 anaconda
conda-package-handling 1.3.11 py37_0 anaconda
conda-verify 3.4.2 py_1 anaconda
console_shortcut 0.1.1 3 anaconda
constants 0.6.0 pypi_0 pypi
contextlib2 0.5.5 py37_0 anaconda
cpuonly 1.0 0 pytorch
cryptography 2.7 py37h7a1dbc1_0 anaconda
cudatoolkit 10.0.130 0 anaconda
curl 7.65.2 h2a8f88b_0 anaconda
cycler 0.10.0 py37_0 anaconda
cython 0.29.12 py37ha925a31_0 anaconda
cytoolz 0.10.0 py37he774522_0 anaconda
dask 2.1.0 py_0 anaconda
dask-core 2.1.0 py_0 anaconda
decorator 4.4.0 py37_1 anaconda
defusedxml 0.6.0 py_0 anaconda
distributed 2.1.0 py_0 anaconda
docutils 0.14 py37_0 anaconda
entrypoints 0.3 py37_0 anaconda
et_xmlfile 1.0.1 py37_0 anaconda
ez-setup 0.9 pypi_0 pypi
fastcache 1.1.0 py37he774522_0 anaconda
fasttext 0.9.1 pypi_0 pypi
feedparser 5.2.1 pypi_0 pypi
ffmpeg 4.1.3 h6538335_0 conda-forge
filelock 3.0.12 py_0 anaconda
first 2.0.2 pypi_0 pypi
flask 1.1.1 py_0 anaconda
freetype 2.9.1 ha9979f8_1 anaconda
future 0.17.1 py37_0 anaconda
gast 0.2.2 py37_0 anaconda
get 2019.4.13 pypi_0 pypi
get_terminal_size 1.0.0 h38e98db_0 anaconda
gevent 1.4.0 py37he774522_0 anaconda
glob2 0.7 py_0 anaconda
google-pasta 0.1.7 pypi_0 pypi
graphviz 2.38.0 4 anaconda
greenlet 0.4.15 py37hfa6e2cd_0 anaconda
grpcio 1.22.0 pypi_0 pypi
h5py 2.9.0 py37h5e291fa_0 anaconda
hdf5 1.10.4 h7ebc959_0 anaconda
heapdict 1.0.0 py37_2 anaconda
html5lib 1.0.1 py37_0 anaconda
http-client 0.1.22 pypi_0 pypi
hypothesis 4.34.0 pypi_0 pypi
icc_rt 2019.0.0 h0cc432a_1 anaconda
icu 58.2 ha66f8fd_1 anaconda
idna 2.8 py37_0 anaconda
imageio 2.4.1 pypi_0 pypi
imageio-ffmpeg 0.3.0 pypi_0 pypi
imagesize 1.1.0 py37_0 anaconda
importlib_metadata 0.17 py37_1 anaconda
imutils 0.5.2 pypi_0 pypi
intel-openmp 2019.0 pypi_0 pypi
ipykernel 5.1.1 py37h39e3cac_0 anaconda
ipython 7.6.1 py37h39e3cac_0 anaconda
ipython_genutils 0.2.0 py37_0 anaconda
ipywidgets 7.5.0 py_0 anaconda
isort 4.3.21 py37_0 anaconda
itsdangerous 1.1.0 py37_0 anaconda
jaraco-functools 2.0 pypi_0 pypi
jdcal 1.4.1 py_0 anaconda
jedi 0.13.3 py37_0 anaconda
jinja2 2.10.1 py37_0 anaconda
joblib 0.13.2 py37_0 anaconda
jpeg 9b hb83a4c4_2 anaconda
json5 0.8.4 py_0 anaconda
jsonschema 3.0.1 py37_0 anaconda
jupyter 1.0.0 py37_7 anaconda
jupyter_client 5.3.1 py_0 anaconda
jupyter_console 6.0.0 py37_0 anaconda
jupyter_core 4.5.0 py_0 anaconda
jupyterlab 1.0.2 py37hf63ae98_0 anaconda
jupyterlab_server 1.0.0 py_0 anaconda
keras 2.2.4 0 anaconda
keras-applications 1.0.8 py_0 anaconda
keras-base 2.2.4 py37_0 anaconda
keras-preprocessing 1.1.0 py_1 anaconda
keyring 18.0.0 py37_0 anaconda
kiwisolver 1.1.0 py37ha925a31_0 anaconda
krb5 1.16.1 hc04afaa_7
lazy-object-proxy 1.4.1 py37he774522_0 anaconda
libarchive 3.3.3 h0643e63_5 anaconda
libcurl 7.65.2 h2a8f88b_0 anaconda
libiconv 1.15 h1df5818_7 anaconda
liblief 0.9.0 ha925a31_2 anaconda
libmklml 2019.0.5 0 anaconda
libpng 1.6.37 h2a8f88b_0 anaconda
libprotobuf 3.8.0 h7bd577a_0 anaconda
libsodium 1.0.16 h9d3ae62_0 anaconda
libssh2 1.8.2 h7a1dbc1_0 anaconda
libtiff 4.0.10 hb898794_2 anaconda
libxml2 2.9.9 h464c3ec_0 anaconda
libxslt 1.1.33 h579f668_0 anaconda
llvmlite 0.29.0 py37ha925a31_0 anaconda
locket 0.2.0 py37_1 anaconda
lxml 4.3.4 py37h1350720_0 anaconda
lz4-c 1.8.1.2 h2fa13f4_0 anaconda
lzo 2.10 h6df0209_2 anaconda
m2w64-gcc-libgfortran 5.3.0 6
m2w64-gcc-libs 5.3.0 7
m2w64-gcc-libs-core 5.3.0 7
m2w64-gmp 6.1.0 2
m2w64-libwinpthread-git 5.0.0.4634.697f757 2
make-dataset 1.0 pypi_0 pypi
markdown 3.1.1 py37_0 anaconda
markupsafe 1.1.1 py37he774522_0 anaconda
matplotlib 3.1.0 py37hc8f65d3_0 anaconda
mccabe 0.6.1 py37_1 anaconda
menuinst 1.4.16 py37he774522_0 anaconda
mistune 0.8.4 py37he774522_0 anaconda
mkl 2019.0 pypi_0 pypi
mkl-service 2.0.2 py37he774522_0 anaconda
mkl_fft 1.0.12 py37h14836fe_0 anaconda
mkl_random 1.0.2 py37h343c172_0 anaconda
mock 3.0.5 py37_0 anaconda
more-itertools 7.0.0 py37_0 anaconda
moviepy 1.0.0 pypi_0 pypi
mpmath 1.1.0 py37_0 anaconda
msgpack-python 0.6.1 py37h74a9793_1 anaconda
msys2-conda-epoch 20160418 1
multipledispatch 0.6.0 py37_0 anaconda
mysqlclient 1.4.2.post1 pypi_0 pypi
navigator-updater 0.2.1 py37_0 anaconda
nbconvert 5.5.0 py_0 anaconda
nbformat 4.4.0 py37_0 anaconda
networkx 2.3 py_0 anaconda
ninja 1.9.0 py37h74a9793_0 anaconda
nltk 3.4.4 py37_0 anaconda
nose 1.3.7 py37_2 anaconda
notebook 6.0.0 py37_0 anaconda
numba 0.44.1 py37hf9181ef_0 anaconda
numexpr 2.6.9 py37hdce8814_0 anaconda
numpy 1.16.4 pypi_0 pypi
numpy-base 1.16.4 py37hc3f5095_0 anaconda
numpydoc 0.9.1 py_0 anaconda
olefile 0.46 py37_0 anaconda
opencv-contrib-python 4.1.0.25 pypi_0 pypi
opencv-python 4.1.0.25 pypi_0 pypi
openpyxl 2.6.2 py_0 anaconda
openssl 1.1.1c he774522_1 anaconda
packaging 19.0 py37_0 anaconda
pandas 0.24.2 py37ha925a31_0 anaconda
pandoc 2.2.3.2 0 anaconda
pandocfilters 1.4.2 py37_1 anaconda
parso 0.5.0 py_0 anaconda
partd 1.0.0 py_0 anaconda
path.py 12.0.1 py_0 anaconda
pathlib2 2.3.4 py37_0 anaconda
patsy 0.5.1 py37_0 anaconda
pattern 3.6 pypi_0 pypi
pdfminer-six 20181108 pypi_0 pypi
pep8 1.7.1 py37_0 anaconda
pickleshare 0.7.5 py37_0 anaconda
pillow 6.1.0 py37hdc69c19_0 anaconda
pip 19.1.1 py37_0 anaconda
pkginfo 1.5.0.1 py37_0 anaconda
pluggy 0.12.0 py_0 anaconda
ply 3.11 py37_0 anaconda
portend 2.5 pypi_0 pypi
post 2019.4.13 pypi_0 pypi
powershell_shortcut 0.0.1 2 anaconda
proglog 0.1.9 pypi_0 pypi
prometheus_client 0.7.1 py_0 anaconda
prompt_toolkit 2.0.9 py37_0 anaconda
protobuf 3.7.1 pypi_0 pypi
psutil 5.6.3 py37he774522_0 anaconda
public 2019.4.13 pypi_0 pypi
py 1.8.0 py37_0 anaconda
py-lief 0.9.0 py37ha925a31_2 anaconda
pybind11 2.3.0 pypi_0 pypi
pycodestyle 2.5.0 py37_0 anaconda
pycosat 0.6.3 py37hfa6e2cd_0 anaconda
pycparser 2.19 py37_0 anaconda
pycrypto 2.6.1 py37hfa6e2cd_9 anaconda
pycryptodome 3.8.2 pypi_0 pypi
pycurl 7.43.0.3 py37h7a1dbc1_0 anaconda
pydot 1.4.1 pypi_0 pypi
pyflakes 2.1.1 py37_0 anaconda
pygments 2.4.2 py_0 anaconda
pylint 2.3.1 py37_0 anaconda
pyodbc 4.0.26 py37ha925a31_0 anaconda
pyopenssl 19.0.0 py37_0 anaconda
pyparsing 2.4.0 py_0 anaconda
pyqt 5.9.2 py37h6538335_2 anaconda
pyreadline 2.1 py37_1 anaconda
pyrsistent 0.14.11 py37he774522_0 anaconda
pysocks 1.7.0 py37_0 anaconda
pytables 3.5.2 py37h1da0976_1 anaconda
pytest 5.0.1 py37_0 anaconda
pytest-arraydiff 0.3 py37h39e3cac_0 anaconda
pytest-astropy 0.5.0 py37_0 anaconda
pytest-doctestplus 0.3.0 py37_0 anaconda
pytest-openfiles 0.3.2 py37_0 anaconda
pytest-remotedata 0.3.1 py37_0 anaconda
python 3.7.3 h8c8aaf0_1 anaconda
python-dateutil 2.8.0 py37_0 anaconda
python-docx 0.8.10 pypi_0 pypi
python-graphviz 0.11.1 pypi_0 pypi
python-libarchive-c 2.8 py37_11 anaconda
pytorch 1.2.0 py3.7_cpu_1 [cpuonly] pytorch
pytube 9.5.1 pypi_0 pypi
pytz 2019.1 py_0 anaconda
pywavelets 1.0.3 py37h8c2d366_1 anaconda
pywin32 223 py37hfa6e2cd_1 anaconda
pywinpty 0.5.5 py37_1000 anaconda
pyyaml 5.1.1 py37he774522_0 anaconda
pyzmq 18.0.0 py37ha925a31_0 anaconda
qt 5.9.7 vc14h73c81de_0 [vc14] anaconda
qtawesome 0.5.7 py37_1 anaconda
qtconsole 4.5.1 py_0 anaconda
qtpy 1.8.0 py_0 anaconda
query-string 2019.4.13 pypi_0 pypi
request 2019.4.13 pypi_0 pypi
requests 2.22.0 py37_0 anaconda
rope 0.14.0 py_0 anaconda
ruamel_yaml 0.15.46 py37hfa6e2cd_0 anaconda
scikit-image 0.15.0 py37ha925a31_0 anaconda
scikit-learn 0.21.2 py37h6288b17_0 anaconda
scipy 1.3.0 pypi_0 pypi
scipy-stack 0.0.5 pypi_0 pypi
seaborn 0.9.0 py37_0 anaconda
send2trash 1.5.0 py37_0 anaconda
setuptools 41.1.0 pypi_0 pypi
simplegeneric 0.8.1 py37_2 anaconda
singledispatch 3.4.0.3 py37_0 anaconda
sip 4.19.8 py37h6538335_0 anaconda
six 1.12.0 py37_0 anaconda
snappy 1.1.7 h777316e_3 anaconda
snowballstemmer 1.9.0 py_0 anaconda
sortedcollections 1.1.2 py37_0 anaconda
sortedcontainers 2.1.0 py37_0 anaconda
soupsieve 1.8 py37_0 anaconda
sphinx 2.1.2 py_0 anaconda
sphinxcontrib 1.0 py37_1 anaconda
sphinxcontrib-applehelp 1.0.1 py_0 anaconda
sphinxcontrib-devhelp 1.0.1 py_0 anaconda
sphinxcontrib-htmlhelp 1.0.2 py_0 anaconda
sphinxcontrib-jsmath 1.0.1 py_0 anaconda
sphinxcontrib-qthelp 1.0.2 py_0 anaconda
sphinxcontrib-serializinghtml 1.1.3 py_0 anaconda
sphinxcontrib-websupport 1.1.2 py_0 anaconda
spyder 3.3.6 py37_0 anaconda
spyder-kernels 0.5.1 py37_0 anaconda
sqlalchemy 1.3.5 py37he774522_0 anaconda
sqlite 3.29.0 he774522_0 anaconda
statsmodels 0.10.0 py37h8c2d366_0 anaconda
summa 1.2.0 pypi_0 pypi
sympy 1.4 py37_0 anaconda
tbb 2019.4 h74a9793_0 anaconda
tblib 1.4.0 py_0 anaconda
tempora 1.14.1 pypi_0 pypi
tensorboard 1.14.0 py37he3c9ec2_0 anaconda
tensorboardx 1.8 pypi_0 pypi
tensorflow 1.14.0 mkl_py37h7908ca0_0 anaconda
tensorflow-base 1.14.0 mkl_py37ha978198_0 anaconda
tensorflow-estimator 1.14.0 py_0 anaconda
tensorflow-mkl 1.14.0 h4fcabd2_0 anaconda
termcolor 1.1.0 pypi_0 pypi
terminado 0.8.2 py37_0 anaconda
testpath 0.4.2 py37_0 anaconda
tk 8.6.8 hfa6e2cd_0 anaconda
toolz 0.10.0 py_0 anaconda
torchvision 0.4.0 py37_cpu [cpuonly] pytorch
tornado 6.0.3 py37he774522_0 anaconda
tqdm 4.32.1 py_0 anaconda
traitlets 4.3.2 py37_0 anaconda
typing 3.6.6 pypi_0 pypi
typing-extensions 3.6.6 pypi_0 pypi
unicodecsv 0.14.1 py37_0 anaconda
urllib3 1.24.2 py37_0 anaconda
validators 0.13.0 pypi_0 pypi
vc 14.1 h0510ff6_4 anaconda
vs2015_runtime 14.15.26706 h3a45250_4 anaconda
wcwidth 0.1.7 py37_0 anaconda
webencodings 0.5.1 py37_1 anaconda
werkzeug 0.15.4 py_0 anaconda
wheel 0.33.4 py37_0 anaconda
widgetsnbextension 3.5.0 py37_0 anaconda
win_inet_pton 1.1.0 py37_0 anaconda
win_unicode_console 0.5 py37_0 anaconda
wincertstore 0.2 py37_0 anaconda
winpty 0.4.3 4 anaconda
wrapt 1.11.2 py37he774522_0 anaconda
xlrd 1.2.0 py37_0 anaconda
xlsxwriter 1.1.8 py_0 anaconda
xlwings 0.15.8 py37_0 anaconda
xlwt 1.3.0 py37_0 anaconda
xz 5.2.4 h2fa13f4_4 anaconda
yaml 0.1.7 hc54c509_2 anaconda
youtube-dl 2019.8.2 pypi_0 pypi
zc-lockfile 1.4 pypi_0 pypi
zeromq 4.3.1 h33f27b4_3 anaconda
zict 1.0.0 py_0 anaconda
zipp 0.5.1 py_0 anaconda
zlib 1.2.11 h62dcd97_3 anaconda
zstd 1.3.7 h508b16e_0 anaconda
you dont have to install it via anaconda, you could install cuda from their website. after install ends open a new terminal and check your cuda version with:
>>> nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:52:33_Pacific_Standard_Time_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0
my is V11.5
then go here and select your os and preferred package manager(pip or anaconda), and the cuda version you installed, and copy the generated install command, I got:
pip3 install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio===0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
notice that for me I had python 3.10 installed but my project run over 3.9 so either use virtual environment or run pip of your wanted base interpreter explicitly (for example C:SoftwarePythonPython39python.exe -m pip install .....
)
else you will be stuck with Could not find a version that satisfies the requirement torch
errors
then open python console and check for cuda availability
>>> import torch
>>> torch.cuda.is_available()
True
How did you install pytorch? It sounds like you installed pytorch without CUDA support. https://pytorch.org/ has instructions for how to install pytorch with cuda support.
In this case, we have the following command:
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
OR the command with latest cudatoolkit version.
Uninstalling the packages and reinstalling it with pip instead solved it for me.
1.conda remove pytorch torchvision torchaudio cudatoolkit
2.pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
try this:
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
This error is happening because of incorrect device. Make sure to run this snippet before every experiment.
device = "cuda" if torch.cuda.is_available() else "cpu"
device
First activate your environment. Replace <name> with your environment name.
conda activate <name>
Then see cuda version in your machine. To see cuda version:
nvcc --version
Now for CUDA 10.1 use:
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch
For CUDA 10.0 use:
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.0 -c pytorch
For CUDA 9.2 use:
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=9.2 -c pytorch
One more thing to note here is if you are installing PyTorch with CUDA support in an anaconda environment, Please make sure that the Python version should be 3.7-3.9.
conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge.
I was getting the same «AssertionError: Torch not compiled with CUDA enabled» with python 3.10.
Comments Section
@merv just added. Yeah idk why it says
py3.7_cpu_1
for pytorch! ^_^
Maybe try forcing the CUDA version:
conda install -c pytorch pytorch=1.2.0=py3.7_cuda92_cudnn7_1
or browse the files for a different compatible version.
That command will reconfigure your environment to use the specified version. So you don’t need to explicitly uninstall. Another (cleaner) option is to create a new env:
conda create -n your_env_name -c pytorch pytorch=1.2.0=py3.7_cuda92_cudnn7_1
.
Oh. Sorry, I was under the impression that you had a GPU. So, you can forget what I had proposed. You’ll need to switch back to CPU only
conda install -c pytorch pytorch=1.2.0=py3.7_cpu_1
. I’m not totally sure about this, but I think you need to edit the code in the repo you’re trying to run to explicitly use the CPU, e.g., replacing things likemodel.cuda()
withmodel.cpu()
(see here). But again, this is just my guess.
Sorry, IDK exactly. My strategy would be first changing all
cuda()
calls tocpu()
, then letting it run and debugging where it breaks. I don’t think I can help beyond that generic advice.
Please ask questions in comments only. Answer a question only when you are sure!
nvidia-smi
gives meCUDA Version: 11.4
whilenvcc --version
gives meCuda compilation tools, release 10.1, V10.1.243
. What should I do in this case?
Thank you!! This solution worked for me to enable CUDA on Windows 10 / Conda.
@desmond13 nvidia-smi and nvcc —version report different things, a mismatch doesn’t mean you don’t have required versions. Please read this stackoverflow.com/questions/53422407/…
Isn’t CUDA backwards compatible? If so it shouldn’t matter what version of CUDA driver I have installed as long as its the latest right?
The website gave me
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
, butcuda.is_available()
still returnsFalse
and my script keeps raisingAssertionError: Torch not compiled with CUDA enabled
.
Make sure you pip installed on the same python interpreter(version) your python project is running on
Related Topics
python
conda
pytorch
torch
Mentions
Ajeet Verma
Tina J
Eliav Louski
Awal
Gilfoyle
Muhammad Hashir Ali
Sinh Nguyen
Oxal
Hussein
Milindsoorya
References
stackoverflow.com/questions/57814535/assertionerror-torch-not-compiled-with-cuda-enabled-in-spite-upgrading-to-cud
#python #machine-learning #pytorch #python-3.7 #torchvision
Вопрос:
Я пытаюсь запустить код из этого репозитория, и мне нужно использовать Pytorch 1.4.0. Я установил версию pytorch только для процессора pip install torch==1.4.0 cpu torchvision==0.5.0 cpu -f https://download.pytorch.org/whl/torch_stable.html
.
Я запустил программу, выполнив py -m train_Kfold_CV --device 0 --fold_id 10 --np_data_dir "C:UsersusernameOneDriveDesktopemadeldeenAttnSleepprepare_datasetsedf_20_npz"
, но я получаю эту ошибку:
File "C:UsersusernameAppDataLocalProgramsPythonPython37librunpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:UsersusernameAppDataLocalProgramsPythonPython37librunpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:UsersusernameOneDriveDesktopemadeldeenAttnSleeptrain_Kfold_CV.py", line 94, in <module>
main(config, fold_id)
File "C:UsersusernameOneDriveDesktopemadeldeenAttnSleeptrain_Kfold_CV.py", line 65, in main
trainer.train()
File "C:UsersusernameOneDriveDesktopemadeldeenAttnSleepbasebase_trainer.py", line 66, in train
result, epoch_outs, epoch_trgs = self._train_epoch(epoch, self.epochs)
File "C:UsersusernameOneDriveDesktopemadeldeenAttnSleeptrainertrainer.py", line 49, in _train_epoch
loss = self.criterion(output, target, self.class_weights)
File "C:UsersusernameOneDriveDesktopemadeldeenAttnSleepmodelloss.py", line 6, in weighted_CrossEntropyLoss
cr = nn.CrossEntropyLoss(weight=torch.tensor(classes_weights).cuda())
File "C:UsersusernameAppDataLocalProgramsPythonPython37libsite-packagestorchcuda__init__.py", line 196, in _lazy_init
_check_driver()
File "C:UsersusernameAppDataLocalProgramsPythonPython37libsite-packagestorchcuda__init__.py", line 94, in _check_driver
raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
Я изменил количество GPU в конфигурации на 0 и попытался добавить device = torch.device('cpu')
в начале программы, но это ничего не дает. Как я могу исправить эту ошибку? Я использую Windows 10 с python 3.7.9, если это поможет
Спасибо
Ответ №1:
Вы используете только процессор pytorch, но в вашем коде есть оператор, подобный cr = nn.CrossEntropyLoss(weight=torch.tensor(classes_weights).cuda())
тому, который пытается переместить тензор на графический процессор.
Чтобы исправить это, удалите все .cuda()
операции.