Top

tensorbuilder module

Tensor Builder

TensorBuilder had a mayor refactoring and is now based on Phi. Updates to the README comming soon!

Goals

Comming Soon!

Installation

Tensor Builder assumes you have a working tensorflow installation. We don't include it in the requirements.txt since the installation of tensorflow varies depending on your setup.

From pypi

pip install tensorbuilder

From github

For the latest development version

pip install git+https://github.com/cgarciae/tensorbuilder.git@develop

Getting Started

Create neural network with a [5, 10, 3] architecture with a softmax output layer and a tanh hidden layer through a Builder and then get back its tensor:

import tensorflow as tf
from tensorbuilder import T

x = tf.placeholder(tf.float32, shape=[None, 5])
keep_prob = tf.placeholder(tf.float32)

h = T.Pipe(
  x,
  T.tanh_layer(10) # tanh(x * w + b)
  .dropout(keep_prob) # dropout(x, keep_prob)
  .softmax_layer(3) # softmax(x * w + b)
)

Features

Comming Soon!

Documentation

Comming Soon!

The Guide

Comming Soon!

Full Example

Next is an example with all the features of TensorBuilder including the DSL, branching and scoping. It creates a branched computation where each branch is executed on a different device. All branches are then reduced to a single layer, but the computation is the branched again to obtain both the activation function and the trainer.

import tensorflow as tf
from tensorbuilder import T

x = placeholder(tf.float32, shape=[None, 10])
y = placeholder(tf.float32, shape=[None, 5])

[activation, trainer] = T.Pipe(
    x,
    [
        T.With( tf.device("/gpu:0"):
            T.relu_layer(20)
        )
    ,
        T.With( tf.device("/gpu:1"):
            T.sigmoid_layer(20)
        )
    ,
        T.With( tf.device("/cpu:0"):
            T.tanh_layer(20)
        )
    ],
    T.linear_layer(5),
    [
        T.softmax() # activation
    ,
        T
        .softmax_cross_entropy_with_logits(y) # loss
        .minimize(tf.train.AdamOptimizer(0.01)) # trainer
    ]
)
from builder import TensorBuilder
from tensordata import Data
from phi import utils

T = TensorBuilder(utils.identity)

import patches #import last

########################
# Documentation
########################
import os

def _to_pdoc_markdown(doc):
    indent = False
    lines = []

    for line in doc.split('\n'):
        if "```" in line:
            indent = not indent
            line = line.replace("```python", '')
            line = line.replace("```", '')

        if indent:
            line = "    " + line

        lines.append(line)

    return '\n'.join(lines)

def _read(fname):
    return open(os.path.join(os.path.dirname(__file__), fname)).read()

_raw_docs = _read("README-template.md")
__version__ = _read("version.txt")
__doc__ = _to_pdoc_markdown(_raw_docs.format(__version__))

Module variables

var T

Sub-modules