Code Monkey home page Code Monkey logo

tensorlayerx's Introduction

GitHub last commit (branch) Documentation Status Build Status Downloads Downloads Docker Pulls

TensorLayerX is a multi-backend AI framework, supports TensorFlow, Pytorch, MindSpore, PaddlePaddle, OneFlow and Jittor as the backends, allowing users to run the code on different hardware like Nvidia-GPU, Huawei-Ascend, Cambricon and more. This project is maintained by researchers from Peking University, Imperial College London, Princeton, Stanford, Tsinghua, Edinburgh and Peng Cheng Lab.

Deep Learning course

We have video courses for deep learning, with example codes based on TensorLayerX.
Bilibili link (chinese)

Design Features

  • Compatibility: Support worldwide frameworks and AI chips, enabling one code runs on all platforms.

  • Model Zoo: Provide a series of applications containing classic and SOTA models, covering CV, NLP, RL and other fields.

  • Deployment: Support ONNX protocol, model export, import and deployment.

Multi-backend Design

You can immediately use TensorLayerX to define a model via Pytorch-stype, and switch to any backends easily.

import os
os.environ['TL_BACKEND'] = 'tensorflow' # modify this line, switch to any backends easily!
#os.environ['TL_BACKEND'] = 'mindspore'
#os.environ['TL_BACKEND'] = 'paddle'
#os.environ['TL_BACKEND'] = 'torch'
import tensorlayerx as tlx
from tensorlayerx.nn import Module
from tensorlayerx.nn import Linear
class CustomModel(Module):

  def __init__(self):
      super(CustomModel, self).__init__()

      self.linear1 = Linear(out_features=800, act=tlx.ReLU, in_features=784)
      self.linear2 = Linear(out_features=800, act=tlx.ReLU, in_features=800)
      self.linear3 = Linear(out_features=10, act=None, in_features=800)

  def forward(self, x, foo=False):
      z = self.linear1(x)
      z = self.linear2(z)
      out = self.linear3(z)
      if foo:
          out = tlx.softmax(out)
      return out

MLP = CustomModel()
MLP.set_eval()

Quick Start

Get started with TensorLayerX quickly using the following examples:

  • MNIST Digit Recognition: Train a simple multi-layer perceptron (MLP) model for digit recognition using the MNIST dataset. Choose between a simple training method or custom loops. See the examples: mnist_mlp_simple_train.py and mnist_mlp_custom_train.py.

  • CIFAR-10 Dataflow: Learn how to create datasets, process images, and load data through DataLoader using the CIFAR-10 dataset. See the example: cifar10_cnn.py.

  • MNIST GAN Training: Train a generative adversarial network (GAN) on the MNIST dataset. See the example: mnist_gan.py.

  • MNIST Mix Programming: Mix TensorLayerX code with other deep learning libraries such as TensorFlow, PyTorch, Paddle, and MindSpore to run on the MNIST dataset. See the example: mnist_mlp_mix_programming.py.

Resources

  • Examples for tutorials
  • GammaGL is series of graph learning algorithm
  • TLXZoo a series of pretrained backbones
  • TLXCV a series of Computer Vision applications
  • TLXNLP a series of Natural Language Processing applications
  • TLX2ONNX ONNX model exporter for TensorLayerX.
  • Paddle2TLX model code converter from PaddlePaddle to TensorLayerX.

More official resources can be found here

Installation

  • The latest TensorLayerX compatible with the following backend version
TensorLayerX TensorFlow MindSpore PaddlePaddle PyTorch OneFlow Jittor
v0.5.8 v2.4.0 v1.8.1 v2.2.0 v1.10.0 -- --
v0.5.7 v2.0.0 v1.6.1 v2.0.2 v1.10.0 -- --
  • via pip for the stable version
# install from pypi
pip3 install tensorlayerx 
  • build from source for the latest version (for advanced users)
# install from Github
pip3 install git+https://github.com/tensorlayer/tensorlayerx.git 

For more installation instructions, please refer to Installtion

  • via docker

Docker is an open source application container engine. In the TensorLayerX Docker Repository, different versions of TensorLayerX have been installed in docker images.

# pull from docker hub
docker pull tensorlayer/tensorlayerx:tagname

Contributing

Join our community as a code contributor, find out more in our Help wanted list and Contributing guide!

Getting Involved

We suggest users to report bugs using Github issues. Users can also discuss how to use TensorLayerX in the following slack channel.


Contact

Citation

If you find TensorLayerX useful for your project, please cite the following papers:

@inproceedings{tensorlayer2021,
  title={TensorLayer 3.0: A Deep Learning Library Compatible With Multiple Backends},
  author={Lai, Cheng and Han, Jiarong and Dong, Hao},
  booktitle={2021 IEEE International Conference on Multimedia \& Expo Workshops (ICMEW)},
  pages={1--3},
  year={2021},
  organization={IEEE}
}
@article{tensorlayer2017,
    author  = {Dong, Hao and Supratak, Akara and Mai, Luo and Liu, Fangde and Oehmichen, Axel and Yu, Simiao and Guo, Yike},
    journal = {ACM Multimedia},
    title   = {{TensorLayer: A Versatile Library for Efficient Deep Learning Development}},
    url     = {http://tensorlayer.org},
    year    = {2017}
} 

tensorlayerx's People

Contributors

laicheng0830 avatar hanjr92 avatar zsdonghao avatar quantumliu avatar hishambarakat16 avatar luka0612 avatar jianzhnie avatar qzhiyue avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.