Code for the paper "Tensorizing Generative Adversarial Nets"
Given an input tensor X, we apply multilinear transformation to it, then we perform element-wise activations to form a tensor layer. For details, refer to the paper [1]. The function 'tensor_layer(tensor, matrices, bias, activation_function)' in 'tnsr.py' defines the presented tensor layer which forms TGAN. Refer hyperparameter.png for hyperparameters used for the paper.
def tensor_layer(tensor, matrices, bias, activation_function):
"""
INPUT: tensor, matrices, bias and activation function
tensor: tensorflow obejct
matrices: list of matrix (tf object again)
bias: you know
activation function: function such as tf.nn.relu
OUTPUT: tensor-layer
mode-dot operation is applied and it changes
the dimensions of the tensor by contraction operations
"""
To run an example of tensorized GAN with MNIST dataset, run the following
python tgan.py
- Python 2.7.14
- Tensorflow 1.1.0
- Numpy 1.12.1
- Matplotlib 2.1.0
[1] Cao, Xingwei, and Qibin Zhao. "Tensorizing Generative Adversarial Nets." arXiv preprint arXiv:1710.10772 (2017).