Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Build Status PyPI version License Join the chat at

TFLearn: Deep learning library featuring a higher-level API for TensorFlow.

TFlearn is a modular and transparent deep learning library built on top of Tensorflow. It was designed to provide a higher-level API to TensorFlow in order to facilitate and speed-up experimentations, while remaining fully transparent and compatible with it.

TFLearn features include:

  • Easy-to-use and understand high-level API for implementing deep neural networks, with tutorial and examples.
  • Fast prototyping through highly modular built-in neural network layers, regularizers, optimizers, metrics...
  • Full transparency over Tensorflow. All functions are built over tensors and can be used independently of TFLearn.
  • Powerful helper functions to train any TensorFlow graph, with support of multiple inputs, outputs and optimizers.
  • Easy and beautiful graph visualization, with details about weights, gradients, activations and more...
  • Effortless device placement for using multiple CPU/GPU.

The high-level API currently supports most of recent deep learning models, such as Convolutions, LSTM, BiRNN, BatchNorm, PReLU, Residual networks, Generative networks... In the future, TFLearn is also intended to stay up-to-date with latest deep learning techniques.

Note: Latest TFLearn (v0.5) is only compatible with TensorFlow v2.0 and over.


# Classification
tflearn.init_graph(num_cores=8, gpu_memory_fraction=0.5)

net = tflearn.input_data(shape=[None, 784])
net = tflearn.fully_connected(net, 64)
net = tflearn.dropout(net, 0.5)
net = tflearn.fully_connected(net, 10, activation='softmax')
net = tflearn.regression(net, optimizer='adam', loss='categorical_crossentropy')

model = tflearn.DNN(net), Y)
# Sequence Generation
net = tflearn.input_data(shape=[None, 100, 5000])
net = tflearn.lstm(net, 64)
net = tflearn.dropout(net, 0.5)
net = tflearn.fully_connected(net, 5000, activation='softmax')
net = tflearn.regression(net, optimizer='adam', loss='categorical_crossentropy')

model = tflearn.SequenceGenerator(net, dictionary=idx, seq_maxlen=100), Y)
model.generate(50, temperature=1.0)

There are many more examples available here.


TFLearn is based on the original tensorflow v1 graph API. When using TFLearn, make sure to import tensorflow that way:

import tflearn
import tensorflow.compat.v1 as tf


TensorFlow Installation

TFLearn requires Tensorflow (version 2.0+) to be installed.

To install TensorFlow, simply run:

pip install tensorflow

or, with GPU-support:

pip install tensorflow-gpu

For more details see TensorFlow installation instructions

TFLearn Installation

To install TFLearn, the easiest way is to run

For the bleeding edge version (recommended):

pip install git+

For the latest stable version:

pip install tflearn

Otherwise, you can also install from source by running (from source folder):

python install

Getting Started

See Getting Started with TFLearn to learn about TFLearn basic functionalities or start browsing TFLearn Tutorials.


There are many neural network implementation available, see Examples.


Model Visualization


Graph Visualization

Loss & Accuracy (multiple runs)

Loss Visualization


Layers Visualization


This is the first release of TFLearn, if you find any bug, please report it in the GitHub issues section.

Improvements and requests for new features are more than welcome! Do not hesitate to twist and tweak TFLearn, and send pull-requests.

For more info: Contribute to TFLearn.


MIT License