Troubleshooting Tensorflow: Fixing 'InternalError: Failed to Create Session' Error – A Comprehensive Guide

The InternalError: Failed to Create Session error in Tensorflow is a common issue faced by developers working with this popular machine learning library. In this guide, we will discuss the possible causes of this error, and provide step-by-step solutions to fix it. Additionally, we'll cover some frequently asked questions to help you better understand this issue.

Table of Contents

Possible Causes of the Error

The InternalError: Failed to Create Session error often occurs due to one of the following reasons:

  1. An outdated version of Tensorflow is installed on your system.
  2. Incompatibility between the installed Tensorflow, CUDA, and cuDNN versions.
  3. Insufficient GPU memory allocation.
  4. Hardware or driver issues.

Solutions to Fix the Error

Solution 1: Update Tensorflow

An outdated version of Tensorflow might be causing the error. To fix this, update Tensorflow to the latest version using the following command:

pip install --upgrade tensorflow

If you are using Tensorflow with GPU support, use this command instead:

pip install --upgrade tensorflow-gpu

Solution 2: Check CUDA and cuDNN Compatibility

If you are using Tensorflow with GPU support, ensure that you have the correct version of CUDA and cuDNN installed on your system. Check the official Tensorflow documentation for the compatible versions.

To check your current CUDA and cuDNN versions, execute the following commands:

nvcc --version
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

If your installed versions are not compatible, download and install the appropriate versions from the Nvidia website.

Solution 3: Set GPU Options

It's possible that the error is occurring due to insufficient GPU memory allocation. To fix this, set the allow_growth option to True in your Tensorflow code. This allows Tensorflow to allocate GPU memory based on its requirements. Here's an example:

import tensorflow as tf

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)

Solution 4: Set CPU as Default Device

If none of the above solutions work, try running your Tensorflow code on the CPU instead of the GPU. To do this, set the default device to CPU in your code:

import tensorflow as tf

with tf.device('/cpu:0'):
    # Your Tensorflow code here


What is the purpose of a Tensorflow session?

A Tensorflow session allows you to execute a computation graph or a part of it. It allocates resources (such as GPU memory) for the operations and manages the underlying hardware.

What is CUDA?

CUDA (Compute Unified Device Architecture) is a parallel computing platform and programming model developed by Nvidia. It enables developers to use Nvidia GPUs for general-purpose computing tasks, such as machine learning and scientific simulations.

What is cuDNN?

cuDNN (CUDA Deep Neural Network library) is a GPU-accelerated library developed by Nvidia for deep learning frameworks like Tensorflow, Caffe, and Theano. It provides highly optimized primitives for deep learning operations, such as convolution and pooling, to improve the performance of neural networks on GPUs.

What is the difference between Tensorflow and Keras?

Tensorflow is an open-source machine learning library developed by Google, while Keras is a high-level neural networks API that can run on top of Tensorflow, Microsoft Cognitive Toolkit, Theano, and PlaidML. Keras provides an easy-to-use interface for building and training neural networks, while Tensorflow offers more flexibility and control over the underlying computations.

How can I check if Tensorflow is using my GPU?

To check if Tensorflow is using your GPU, run the following code snippet:

import tensorflow as tf

if tf.test.gpu_device_name():
    print('GPU found:', tf.test.gpu_device_name())
    print("No GPU found.")

If your GPU is being utilized by Tensorflow, this code will display the name of the GPU device. Otherwise, it will print "No GPU found."

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.