Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
TensorFlow on Windows self-check
# Copyright 2015 The TensorFlow Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
"""A script for testing that TensorFlow is installed correctly on Windows.
The script will attempt to verify your TensorFlow installation, and print
suggestions for how to fix your installation.
"""
import ctypes
import imp
import sys
def main():
try:
import tensorflow as tf
print("TensorFlow successfully installed.")
if tf.test.is_built_with_cuda():
print("The installed version of TensorFlow includes GPU support.")
else:
print("The installed version of TensorFlow does not include GPU support.")
sys.exit(0)
except ImportError:
print("ERROR: Failed to import the TensorFlow module.")
candidate_explanation = False
python_version = sys.version_info.major, sys.version_info.minor
print("\n- Python version is %d.%d." % python_version)
if not (python_version == (3, 5) or python_version == (3, 6)):
candidate_explanation = True
print("- The official distribution of TensorFlow for Windows requires "
"Python version 3.5 or 3.6.")
try:
_, pathname, _ = imp.find_module("tensorflow")
print("\n- TensorFlow is installed at: %s" % pathname)
except ImportError:
candidate_explanation = False
print("""
- No module named TensorFlow is installed in this Python environment. You may
install it using the command `pip install tensorflow`.""")
try:
msvcp140 = ctypes.WinDLL("msvcp140.dll")
except OSError:
candidate_explanation = True
print("""
- Could not load 'msvcp140.dll'. TensorFlow requires that this DLL be
installed in a directory that is named in your %PATH% environment
variable. You may install this DLL by downloading Microsoft Visual
C++ 2015 Redistributable Update 3 from this URL:
https://www.microsoft.com/en-us/download/details.aspx?id=53587""")
try:
cudart64_80 = ctypes.WinDLL("cudart64_80.dll")
except OSError:
candidate_explanation = True
print("""
- Could not load 'cudart64_80.dll'. The GPU version of TensorFlow
requires that this DLL be installed in a directory that is named in
your %PATH% environment variable. Download and install CUDA 8.0 from
this URL: https://developer.nvidia.com/cuda-toolkit""")
try:
nvcuda = ctypes.WinDLL("nvcuda.dll")
except OSError:
candidate_explanation = True
print("""
- Could not load 'nvcuda.dll'. The GPU version of TensorFlow requires that
this DLL be installed in a directory that is named in your %PATH%
environment variable. Typically it is installed in 'C:\Windows\System32'.
If it is not present, ensure that you have a CUDA-capable GPU with the
correct driver installed.""")
cudnn5_found = False
try:
cudnn5 = ctypes.WinDLL("cudnn64_5.dll")
cudnn5_found = True
except OSError:
candidate_explanation = True
print("""
- Could not load 'cudnn64_5.dll'. The GPU version of TensorFlow
requires that this DLL be installed in a directory that is named in
your %PATH% environment variable. Note that installing cuDNN is a
separate step from installing CUDA, and it is often found in a
different directory from the CUDA DLLs. You may install the
necessary DLL by downloading cuDNN 5.1 from this URL:
https://developer.nvidia.com/cudnn""")
cudnn6_found = False
try:
cudnn = ctypes.WinDLL("cudnn64_6.dll")
cudnn6_found = True
except OSError:
candidate_explanation = True
if not cudnn5_found or not cudnn6_found:
print()
if not cudnn5_found and not cudnn6_found:
print("- Could not find cuDNN.")
elif not cudnn5_found:
print("- Could not find cuDNN 5.1.")
else:
print("- Could not find cuDNN 6.")
print("""
The GPU version of TensorFlow requires that the correct cuDNN DLL be installed
in a directory that is named in your %PATH% environment variable. Note that
installing cuDNN is a separate step from installing CUDA, and it is often
found in a different directory from the CUDA DLLs. The correct version of
cuDNN depends on your version of TensorFlow:
* TensorFlow 1.2.1 or earlier requires cuDNN 5.1. ('cudnn64_5.dll')
* TensorFlow 1.3 or later requires cuDNN 6. ('cudnn64_6.dll')
You may install the necessary DLL by downloading cuDNN from this URL:
https://developer.nvidia.com/cudnn""")
if not candidate_explanation:
print("""
- All required DLLs appear to be present. Please open an issue on the
TensorFlow GitHub page: https://github.com/tensorflow/tensorflow/issues""")
sys.exit(-1)
if __name__ == "__main__":
main()

Thanks a lot dude.
I was trying to troubleshoot tensorflow-gpu install with cuda on windows 10 for weeks!!!
This really helped me!
Thanks again !

ManojPabani commented Jun 29, 2017

I am getting these error how can i fix them?

C:\PythonPrograms>python tensorflow_self_check.py
ERROR: Failed to import the TensorFlow module.

  • Python version is 3.5.

  • TensorFlow is installed at: C:\Users\Manoj\AppData\Local\Programs\Python\Pytho
    n35\lib\site-packages\tensorflow

  • Could not load 'msvcp140.dll'. TensorFlow requires that this DLL be
    installed in a directory that is named in your %PATH% environment
    variable. You may install this DLL by downloading Microsoft Visual
    C++ 2015 Redistributable Update 3 from this URL:
    https://www.microsoft.com/en-us/download/details.aspx?id=53587

  • Could not load 'cudart64_80.dll'. The GPU version of TensorFlow
    requires that this DLL be installed in a directory that is named in
    your %PATH% environment variable. Download and install CUDA 8.0 from
    this URL: https://developer.nvidia.com/cuda-toolkit

  • Could not load 'nvcuda.dll'. The GPU version of TensorFlow requires that
    this DLL be installed in a directory that is named in your %PATH%
    environment variable. Typically it is installed in 'C:\Windows\System32'.
    If it is not present, ensure that you have a CUDA-capable GPU with the
    correct driver installed.

  • Could not load 'cudnn64_5.dll'. The GPU version of TensorFlow
    requires that this DLL be installed in a directory that is named in
    your %PATH% environment variable. Note that installing cuDNN is a
    separate step from installing CUDA, and it is often found in a
    different directory from the CUDA DLLs. You may install the
    necessary DLL by downloading cuDNN 5.1 from this URL:
    https://developer.nvidia.com/cudnn

I found the 'msvcp140.dll' in C drive and i pasted in python folder which is mention in path variable but still it gives me the same error.

Thank you for this.

justprotato commented Jul 20, 2017

Hello,@mrry.
After using your script, I got

ERROR: Failed to import the TensorFlow module.


I m trying Python 3.5.3 Tensorflow GPU version nightly binaries(#243), but I got similar error output as #8161

However, I can import the tensorflow successfully if I use the below version:
pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.0-cp35-cp35m-win_amd64.whl

Really need your help.
Thank you for helping me.

@justprotato Pop this on Stack Overflow and I can probably help. I've been having these issues and think that I know what the issue is. Don't want to spam here though.

Thank you, @jubjamie. I have posted in Stack Overflow

monomon commented Jul 24, 2017

That's a great script!
There is a spurious ")" on line 111, so syntax error.

Brilliant Script.
Peeps will need to remove
if not cudnn5_found and not cudnn6_found):
and replace with
if not cudnn5_found and not cudnn6_found:

fierval commented Jul 28, 2017

Thank you very much! Brilliant.

thank you glenlewis for pointing out the syntax error

When running the script I get no output. When running it in PyCharm it says: "Process finished with exit code 0" but none of the print statements gets printed. Same when executing the script in cmd.

areel commented Aug 17, 2017

Thank you for supplying this. I would never have found out that

  • TensorFlow 1.3 or later requires cuDNN 6. ('cudnn64_6.dll')

Because unfortunately as of today (17th Aug 2017) https://www.tensorflow.org/install/install_windows was stating cuDNN v5.1 was required.

I know you have saved me hours.

Thank you so much! The official website of tensorflow is misleading, it says I need cuDNN5.1. After I run your test program, it says I need cuDNN6.0, then I fixed it! Thank you!

prdas31 commented Aug 18, 2017

Okay. Solved it. Same issue as TensorFlow 1.3 or later requires cuDNN 6. ('cudnn64_6.dll')

Jumabek commented Aug 21, 2017

@prdas31 thanks for sharing, you saved the day!

yyq263 commented Aug 22, 2017

It solves my problem not loading DLL after I switch cuDNN5.1 to cuDNN6.0. Thanks a lot!

This really saved me. The install guide https://www.tensorflow.org/install/install_windows explicitly mentioned cuDNN v5.1. So I was really stuck until I ran this code. cuDNN v6.0 was all I needed.

lyf5 commented Aug 23, 2017

Thank you very much! This problem has already spend my two days.

When the tensorflow version is 1.3, you must download cuDNN6!! But in the mainpage of tensorflow, It appears cuDNN5 still.

nikkou commented Aug 28, 2017

This is superb, I had no idea I had to downgrade cuDNN from 7 to 6 before I ran this script.

vcvycy commented Aug 29, 2017

I spend all day fixing the "dll loaded failed" problem...And finally,resolve it according to This Script...HAHAHAH...

Muito obrigado pelo script.

Super helpful - thanks a ton!

Really great function. It is super helpful.

edgarbc commented Sep 13, 2017

Thanks a lot! it is of great help

Thanks a lot. Saved a lot of time

Thank you very much!

It is really helpful to me.
Thank u so much.

ajithor commented Sep 24, 2017

Couldn't really run that code..it spat some error pointing to main..
But the code..really efficient..helped me figure out what was wrong..You got me out of a loophole that I've been stuck since the last 2 days..
Thank you :)

Google should include this check into TensorFlow utility. Good job!

devilsnare007 commented Oct 7, 2017

Man i dont get what Im doing wrong here... this script runs then quickly closes! :/
Update: Got the script to work, it appears its not for TF 1.3, Cuda v9.0, cudnn7.0 (tried on Win 10 x64 using Anaconda).... or maybe I am just a noob!

kaaztech commented Oct 8, 2017

There was an error and it was very troubled.
The cause was understood by this script and it was solved.

Thank you.

jcrousse commented Oct 8, 2017

Hi, thanks a lot for this script.
I'm a bit surprised to see that "cudart64_80.dll" is missing. I used the same CUDA 8.0 installer as I used a month ago when I have been able to get tensorflow to work on my windows machine with GPU.
I also tried a newer versions of the CUDA toolkit (8.1), but I never get a "cudart64_80.dll" library after the installation.
Any idea why I do not have it?

smatmo commented Oct 15, 2017

Thanks a lot! It would be great if the TF people would link to this script from their installation site -- would save some trouble.

Thanks a lot! It helps me to check my installation

Am not able to figure out whats wrong please help :/

#############################################################
ERROR: Failed to import the TensorFlow module.

  • Python version is 3.5.

  • TensorFlow is installed at: /usr/local/lib/python3.5/dist-packages/tensorflow
    Traceback (most recent call last):
    File "tensorflow_self_check.py", line 138, in
    main()
    File "tensorflow_self_check.py", line 56, in main
    msvcp140 = ctypes.WinDLL("msvcp140.dll")
    AttributeError: module 'ctypes' has no attribute 'WinDLL'

Owner

mrry commented Oct 23, 2017

@dikshantx It looks like you're not running on Windows. This script is only intended for dealing with Windows installation issues.

👍

Wow! So amazing! Thank you very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment