diff --git a/.travis.yml b/.travis.yml
index 2a0513505..5b7692d5f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -45,14 +45,23 @@ env:
## To update: travis encrypt GITHUB_PERSONAL_TOKEN=################################
- secure: "kMxg4WfTwhnYMD7WjYk71vgw7XlShPpANauKzfTL6oawDrpQRkBUai4uQwiL3kXVBuVv9rKKKZxxnyAm05iB5wGasPDhlFA1DPF0IbyU3pwQKlw2Xo5qtHdgxBnbms6JJ9z5b+hHCVg+LXYYeUw5qG01Osg5Ue6j1g2juQQHCod00FNuo3fe8ah/Y10Rem6CigH8ofosCrTvN2w1GaetJwVehRYf8JkPC6vQ+Yk8IIjHn2CaVJALbhuchVblxwH0NXXRen915BVBwWRQtsrvEVMXKu7A8sMHmvPz1u3rhXQfjpF2KeVOfy1ZnyiHcLE2HgAPuAGh4kxZAAA8ovmcaCbv8m64bm72BrQApSbt6OEtR9L1UeUwdEgi54FH1XFOHQ9dA6CpiGCyk3wAJZqO0/PkNYVLfb4gPLvnvBRwYBaPgUPvVNhidFu/oODENZmcf8g9ChtuC1GT70EYlVwhgDGqUY7/USZCEvIPe81UToqtIKgcgA+Is51XindumJVMiqTsjgdqeC/wZcw+y37TAjIvvXbtYxeqIKv9zh1JuZppqUhnf+OhI+HHFaY4iu7lQTs3C0WmoLskZAp9srwRtifnVFFkdYzngmPaSjWyko2qiS0cTdFJQB/ljqmnJdksacbv5OOa0Q4qZef/hW774nVx105FlkAIk70D2b5l2pA="
+
+matrix:
+ include:
+ - python: 3.6
+ env:
+ - _DOC_AND_YAPF_TEST=True
+
+
install:
- - pip install tensorflow==$_TF_VERSION
+ - if [[ -v _DOC_AND_YAPF_TEST ]]; then pip install tensorflow; else pip install tensorflow==$_TF_VERSION; fi
- pip install -e .[all]
+
script:
# units test
# https://docs.pytest.org/en/latest/
- - pytest
+ - if [[ -v _DOC_AND_YAPF_TEST ]]; then python tests/test_documentation.py; python tests/test_yapf_format.py; else pytest; fi
before_deploy:
diff --git a/README.md b/README.md
index 5c81fa45f..ec409ca94 100644
--- a/README.md
+++ b/README.md
@@ -4,23 +4,26 @@
-[](https://app.codacy.com/app/tensorlayer/tensorlayer)
+[](https://app.codacy.com/app/tensorlayer/tensorlayer)
[](https://github.com/tensorlayer/awesome-tensorlayer)
[](https://tensorlayer.readthedocs.io/)
[](https://tensorlayercn.readthedocs.io/)
[](http://www.broadview.com.cn/book/5059/)
+[](http://pepy.tech/project/tensorlayer)
-[](https://pypi.org/project/tensorlayer/)
-[](https://github.com/tensorlayer/tensorlayer/compare/1.8.6rc2...master)
-[](https://pypi.org/project/tensorlayer/)
-[](https://github.com/tensorflow/tensorflow/releases)
-[](https://travis-ci.org/tensorlayer/tensorlayer)
-[](https://circleci.com/gh/tensorlayer/tensorlayer/tree/master)
-[](https://tensorlayer.readthedocs.io/)
-[](https://tensorlayercn.readthedocs.io/)
+
+
+[](https://github.com/tensorlayer/tensorlayer/compare/1.8.6rc2...master)
+[](https://pypi.org/project/tensorlayer/)
+[](https://github.com/tensorflow/tensorflow/releases)
+
+[](https://travis-ci.org/tensorlayer/tensorlayer)
+[](https://circleci.com/gh/tensorlayer/tensorlayer/tree/master)
+[](https://tensorlayer.readthedocs.io/)
+[](https://tensorlayercn.readthedocs.io/)
[](https://pyup.io/repos/github/tensorlayer/tensorlayer/)
-[](https://hub.docker.com/r/tensorlayer/tensorlayer/)
+[](https://hub.docker.com/r/tensorlayer/tensorlayer/)
@@ -111,7 +114,7 @@ nvidia-docker run -it --rm -p 8888:8888 -p 6006:6006 -e PASSWORD=JUPYTER_NB_PASS
# Contribute
-Please read the [Contributor Guideline](https://github.com/tensorlayer/tensorlayer/blob/rearrange-readme/CONTRIBUTING.md) before submitting your PRs.
+Please read the [Contributor Guideline](https://github.com/tensorlayer/tensorlayer/blob/master/CONTRIBUTING.md) before submitting your PRs.
# Cite
If you find this project useful, we would be grateful if you cite the TensorLayer paper:
diff --git a/README.rst b/README.rst
index 6ef693bfe..606c040ab 100644
--- a/README.rst
+++ b/README.rst
@@ -6,23 +6,48 @@
-.. image:: https://img.shields.io/travis/tensorlayer/tensorlayer.svg?label=Travis&branch=master
- :target: https://travis-ci.org/tensorlayer/tensorlayer
-.. image:: https://badge.fury.io/py/tensorlayer.svg
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/codacy/grade/ca2a29ddcf7445588beff50bee5406d9.svg
+ :target: https://app.codacy.com/app/tensorlayer/tensorlayer
+
+.. image:: https://awesome.re/mentioned-badge.svg
+ :target: https://github.com/tensorlayer/awesome-tensorlayer
+
+.. image:: https://img.shields.io/badge/documentation-english-blue.svg
+ :target: https://tensorlayer.readthedocs.io/
+
+.. image:: https://img.shields.io/badge/documentation-中文-blue.svg
+ :target: https://tensorlayercn.readthedocs.io/
+
+.. image:: https://img.shields.io/badge/book-中文-blue.svg
+ :target: http://www.broadview.com.cn/book/5059/
+
+.. image:: http://pepy.tech/badge/tensorlayer
+ :target: http://pepy.tech/project/tensorlayer
+
+
+.. raw:: html
+
+
+
+.. raw:: html
+
+
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/github/release/tensorlayer/tensorlayer.svg?label=PyPI%20-%20Release
+ :target: https://pypi.org/project/tensorlayer/
+
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/github/release/tensorlayer/tensorlayer/all.svg?label=PyPI%20-%20Pre-Release
:target: https://pypi.org/project/tensorlayer/
-.. image:: https://img.shields.io/github/commits-since/tensorlayer/tensorlayer/latest.svg
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/github/commits-since/tensorlayer/tensorlayer/latest.svg
:target: https://github.com/tensorlayer/tensorlayer/compare/1.8.6rc2...master
-.. image:: https://img.shields.io/pypi/pyversions/tensorlayer.svg
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/pypi/pyversions/tensorlayer.svg
:target: https://pypi.org/project/tensorlayer/
.. image:: https://img.shields.io/badge/tensorflow-1.6.0+-blue.svg
:target: https://github.com/tensorflow/tensorflow/releases
-.. image:: https://api.codacy.com/project/badge/Grade/ca2a29ddcf7445588beff50bee5406d9
- :target: https://app.codacy.com/app/tensorlayer/tensorlayer
.. raw:: html
@@ -30,20 +55,27 @@
.. raw:: html
-.. image:: https://img.shields.io/circleci/project/github/tensorlayer/tensorlayer.svg?label=Docker%20Build&branch=master
- :target: https://circleci.com/gh/tensorlayer/tensorlayer/tree/master
-.. image:: https://img.shields.io/docker/pulls/tensorlayer/tensorlayer.svg?maxAge=604800
- :target: https://hub.docker.com/r/tensorlayer/tensorlayer/
-.. image:: https://img.shields.io/readthedocs/tensorlayer/latest.svg?label=ReadTheDocs-EN
- :target: https://tensorlayer.readthedocs.io/
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/travis/tensorlayer/tensorlayer.svg?label=Travis&branch=master
+ :target: https://travis-ci.org/tensorlayer/tensorlayer
-.. image:: https://img.shields.io/readthedocs/tensorlayercn/latest.svg?label=ReadTheDocs-CN
- :target: https://tensorlayercn.readthedocs.io/
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/circleci/project/github/tensorlayer/tensorlayer/master.svg?label=Docker%20Build
+ :target: https://circleci.com/gh/tensorlayer/tensorlayer/tree/master
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/readthedocs/tensorlayer/latest.svg?label=ReadTheDocs-EN
+ :target: https://tensorlayer.readthedocs.io/
+
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/readthedocs/tensorlayercn/latest.svg?label=ReadTheDocs-CN
+ :target: https://tensorlayercn.readthedocs.io/
+
.. image:: https://pyup.io/repos/github/tensorlayer/tensorlayer/shield.svg
:target: https://pyup.io/repos/github/tensorlayer/tensorlayer/
+
+.. image:: http://ec2-35-178-47-120.eu-west-2.compute.amazonaws.com/docker/pulls/tensorlayer/tensorlayer.svg
+ :target: https://hub.docker.com/r/tensorlayer/tensorlayer/
+
+
.. raw:: html
@@ -59,184 +91,144 @@
.. raw:: html
-.. image:: https://awesome.re/mentioned-badge.svg
- :target: https://github.com/tensorlayer/awesome-tensorlayer
-
-.. image:: https://img.shields.io/badge/documentation-english-blue.svg
- :target: https://tensorlayer.readthedocs.io/
-
-.. image:: https://img.shields.io/badge/documentation-中文-blue.svg
- :target: https://tensorlayercn.readthedocs.io/
-
-.. image:: https://img.shields.io/badge/book-中文-blue.svg
- :target: http://www.broadview.com.cn/book/5059/
-
-TensorLayer is a deep learning and reinforcement learning library on top
-of `TensorFlow`_. It provides rich neural layers and utility functions
-to help researchers and engineers build real-world AI applications.
-TensorLayer is awarded the 2017 Best Open Source Software by the
-prestigious `ACM Multimedia Society`_.
+TensorLayer is a novel TensorFlow-based deep learning and reinforcement
+learning library designed for researchers and engineers. It provides a
+large collection of customizable neural layers / functions that are key
+to build real-world AI applications. TensorLayer is awarded the 2017
+Best Open Source Software by the `ACM Multimedia
+Society `__.
Why another deep learning library: TensorLayer
==============================================
-Features
---------
-
-As TensorFlow users, we have been looking for a library that can serve
-for various development phases. This library is easy for beginners by
-providing rich neural network implementations, examples and tutorials.
-Later, its APIs shall naturally allow users to leverage the powerful
-features of TensorFlow, exhibiting best performance in addressing
-real-world problems. In the end, the extra abstraction shall not
-compromise TensorFlow performance, and thus suit for production
-deployment. TensorLayer is a novel library that aims to satisfy these
-requirements.
-
+As deep learning practitioners, we have been looking for a library that
+can address various development purposes. This library is easy to adopt
+by providing diverse examples, tutorials and pre-trained models. Also,
+it allow users to easily fine-tune TensorFlow; while being suitable for
+production deployment. TensorLayer aims to satisfy all these purposes.
It has three key features:
-- **Simplicity** : TensorLayer lifts the low-level dataflow abstraction
- of TensorFlow to *high-level* layers. It also provides users with
- `rich examples`_ to minimize learning barrier.
-- **Flexibility** : TensorLayer APIs are transparent: it does not mask
- TensorFlow from users; but leaving massive hooks that support diverse
- *low-level tuning*.
-- **Zero-cost Abstraction** : TensorLayer has negligible overheads and
- can thus achieve the *full performance* of TensorFlow.
-
-Negligible overhead
--------------------
-
-To show the overhead, we train classic deep learning models using
-TensorLayer and native TensorFlow on a Titan X Pascal GPU.
-
-+-------------+---------------+---------------+---------------+
-| | CIFAR-10 | PTB LSTM | Word2Vec |
-+=============+===============+===============+===============+
-| TensorLayer | 2528 images/s | 18063 words/s | 58167 words/s |
-+-------------+---------------+---------------+---------------+
-| TensorFlow | 2530 images/s | 18075 words/s | 58181 words/s |
-+-------------+---------------+---------------+---------------+
-
-Why using TensorLayer instead of Keras or TFLearn
--------------------------------------------------
-
-Similar to TensorLayer, Keras and TFLearn are also popular TensorFlow
-wrapper libraries. These libraries are comfortable to start with. They
-provide high-level abstractions; but mask the underlying engine from
-users. It is thus hard to customize model behaviors and touch the
-essential features of TensorFlow.
-
-Without compromise in simplicity, TensorLayer APIs are generally more
-flexible and transparent. Users often find it easy to start with the
-examples and tutorials of TensorLayer, and then dive into the TensorFlow
-low-level APIs only if need. TensorLayer does not create library
-lock-in. Users can easily import models from Keras, TFSlim and TFLearn
-into a TensorLayer environment.
-
-TensorLayer has a fast growing usage in academic and industry
-organizations. It is used by researchers from Imperial College London,
-Carnegie Mellon University, Stanford University, University of
-Technology of Compiegne (UTC), Tsinghua University, UCLA, and etc., as
-well as engineers from Google, Microsoft, Alibaba, Tencent, Xiaomi,
-Penguins Innovate, Bloomberg and many others.
-
-Installation
-============
+- **Simplicity** : TensorLayer lifts the low-level dataflow interface
+ of TensorFlow to *high-level* layers / models. It is very easy to
+ learn through the rich `example
+ codes `__
+ contributed by a wide community.
+- **Flexibility** : TensorLayer APIs are transparent: it does not
+ mask TensorFlow from users; but leaving massive hooks that help
+ *low-level tuning* and *deep customization*.
+- **Zero-cost Abstraction** : TensorLayer can achieve the *full
+ power* of TensorFlow. The following table shows the training speeds
+ of classic models using TensorLayer and native TensorFlow on a Titan
+ X Pascal GPU.
+
+ +---------------+-----------------+-----------------+-----------------+
+ | | CIFAR-10 | PTB LSTM | Word2Vec |
+ +===============+=================+=================+=================+
+ | TensorLayer | 2528 images/s | 18063 words/s | 58167 words/s |
+ +---------------+-----------------+-----------------+-----------------+
+ | TensorFlow | 2530 images/s | 18075 words/s | 58181 words/s |
+ +---------------+-----------------+-----------------+-----------------+
+
+TensorLayer stands at a unique spot in the library landscape. Other
+wrapper libraries like Keras and TFLearn also provide high-level
+abstractions. They, however, often hide the underlying engine from
+users, which make them hard to customize and fine-tune. On the contrary,
+TensorLayer APIs are generally flexible and transparent. Users often
+find it easy to start with the examples and tutorials, and then dive
+into TensorFlow seamlessly. In addition, TensorLayer does not create
+library lock-in through native supports for importing components from
+Keras, TFSlim and TFLearn.
+
+TensorLayer has a fast growing usage among top researchers and
+engineers, from universities like Imperial College London, UC Berkeley,
+Carnegie Mellon University, Stanford University, and University of
+Technology of Compiegne (UTC), and companies like Google, Microsoft,
+Alibaba, Tencent, Xiaomi, and Bloomberg.
+
+Install
+=======
TensorLayer has pre-requisites including TensorFlow, numpy, matplotlib
-and nltk (optional). For GPU support, CUDA and cuDNN are required.
-
-The simplest way to install TensorLayer is to use the Python Package
-Index (PyPI):
+and nltk (optional). For GPU support, CUDA and cuDNN are required. The
+simplest way to install TensorLayer is to use the Python Package Index
+(PyPI):
.. code:: bash
- # for last stable version
- pip install tensorlayer
+ # for last stable version
+ pip install tensorlayer
- # for latest release candidate
- pip install --pre tensorlayer
+ # for latest release candidate
+ pip install --pre tensorlayer
Alternatively, you can install the development version by directly
pulling from github:
.. code:: bash
- pip install git+https://github.com/tensorlayer/tensorlayer.git
+ pip install git+https://github.com/tensorlayer/tensorlayer.git
Using Docker - a ready-to-use environment
-----------------------------------------
-The `TensorLayer containers`_ are built on top of the official
-`TensorFlow containers`_:
+The `TensorLayer
+containers `__ are
+built on top of the official `TensorFlow
+containers `__:
Containers with CPU support
~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: bash
- # for CPU version and Python 2
- docker pull tensorlayer/tensorlayer:latest
- docker run -it --rm -p 8888:8888 -p 6006:6006 -e PASSWORD=JUPYTER_NB_PASSWORD tensorlayer/tensorlayer:latest
+ # for CPU version and Python 2
+ docker pull tensorlayer/tensorlayer:latest
+ docker run -it --rm -p 8888:8888 -p 6006:6006 -e PASSWORD=JUPYTER_NB_PASSWORD tensorlayer/tensorlayer:latest
- # for CPU version and Python 3
- docker pull tensorlayer/tensorlayer:latest-py3
- docker run -it --rm -p 8888:8888 -p 6006:6006 -e PASSWORD=JUPYTER_NB_PASSWORD tensorlayer/tensorlayer:latest-py3
+ # for CPU version and Python 3
+ docker pull tensorlayer/tensorlayer:latest-py3
+ docker run -it --rm -p 8888:8888 -p 6006:6006 -e PASSWORD=JUPYTER_NB_PASSWORD tensorlayer/tensorlayer:latest-py3
Containers with GPU support
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-NVIDIA-Docker is required for these containers to work: `Project Link`_
+NVIDIA-Docker is required for these containers to work: `Project
+Link `__
.. code:: bash
- # for GPU version and Python 2
- docker pull tensorlayer/tensorlayer:latest-gpu
- nvidia-docker run -it --rm -p 8888:88888 -p 6006:6006 -e PASSWORD=JUPYTER_NB_PASSWORD tensorlayer/tensorlayer:latest-gpu
+ # for GPU version and Python 2
+ docker pull tensorlayer/tensorlayer:latest-gpu
+ nvidia-docker run -it --rm -p 8888:88888 -p 6006:6006 -e PASSWORD=JUPYTER_NB_PASSWORD tensorlayer/tensorlayer:latest-gpu
- # for GPU version and Python 3
- docker pull tensorlayer/tensorlayer:latest-gpu-py3
- nvidia-docker run -it --rm -p 8888:8888 -p 6006:6006 -e PASSWORD=JUPYTER_NB_PASSWORD tensorlayer/tensorlayer:latest-gpu-py3
+ # for GPU version and Python 3
+ docker pull tensorlayer/tensorlayer:latest-gpu-py3
+ nvidia-docker run -it --rm -p 8888:8888 -p 6006:6006 -e PASSWORD=JUPYTER_NB_PASSWORD tensorlayer/tensorlayer:latest-gpu-py3
-Contribute to TensorLayer
-=========================
+Contribute
+==========
-Please read the `Contributor Guideline`_ before submitting your PRs.
+Please read the `Contributor
+Guideline `__
+before submitting your PRs.
-Citation
-========
+Cite
+====
If you find this project useful, we would be grateful if you cite the
TensorLayer paper:
::
- @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}
- }
+ @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}
+ }
License
=======
TensorLayer is released under the Apache 2.0 license.
-
-.. _Contributor Guideline: https://github.com/tensorlayer/tensorlayer/blob/rearrange-readme/CONTRIBUTING.md
-
-.. _TensorLayer containers: https://hub.docker.com/r/tensorlayer/tensorlayer/
-.. _TensorFlow containers: https://hub.docker.com/r/tensorflow/tensorflow/
-.. _Project Link: https://github.com/NVIDIA/nvidia-docker
-
-.. _rich examples: https://github.com/tensorlayer/awesome-tensorlayer
-
-.. _Mentioned in Awesome TensorLayer: https://github.com/tensorlayer/awesome-tensorlayer
-.. _English Documentation: https://tensorlayer.readthedocs.io/
-.. _Chinese Documentation: https://tensorlayercn.readthedocs.io/
-.. _Chinese Book: http://www.broadview.com.cn/book/5059/
-
-.. _TensorFlow: https://www.tensorflow.org
-.. _ACM Multimedia Society: http://www.acmmm.org/2017/mm-2017-awardees/
diff --git a/pytest.ini b/pytest.ini
deleted file mode 100644
index ad16166ae..000000000
--- a/pytest.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[pytest]
-testpaths = tests/
\ No newline at end of file
diff --git a/setup.cfg b/setup.cfg
index 9b5363fbd..5456624dc 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,3 +1,8 @@
+[tool:pytest]
+testpaths = tests/
+addopts = --ignore=tests/test_documentation.py
+ --ignore=tests/test_yapf_format.py
+
[flake8]
max-line-length = 120
ignore =