All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
2.2.3 - 2020-06-18
TensorLayer 2.2.3 is a maintenance release. It contains numerous bug fixes.
- Fix VGG. (#1078, 1079, 1089)
- Fix norm layer. (#1080)
- Fix DeCov2d layer. (#1081)
- Fix ModelLayer and LayerList doc. (#1083)
- Fix bug in SAC. (#1085)
- Fix refactoring: Deduplication. (#1086)
- Fix maxpool, batchnorm Data format fixed, vgg forward. (#1089)
- Fix package info. (#1090)
- @zsdonghao
- @tiancheng2000 (#1078 #1079 #1080 #1081)
- @ChrisWu1997 (#1083)
- @quantumiracle (#1085)
- @marload (#1086)
- @Gyx-One (#1089)
- @Laicheng0830 (#1090)
2.2.2 - 2020-04-26
TensorLayer 2.2.2 is a maintenance release.
- Reinforcement learning(#1065)
- Mish activation(#1068)
- Fix README.
- Fix package info.
- @zsdonghao
- @quantumiracle(1065)
- @Laicheng0830(#1068)
2.2.1 - 2020-01-14
TensorLayer 2.2.1 is a maintenance release. It contains numerous bug fixes.
- Fix README. (#1044)
- Fix package info. (#1046)
- Fix build test (Using YAPF 0.29) (#1057)
- @luomai (#1044, #1046, #1057)
2.2.0 - 2019-09-13
TensorLayer 2.2.0 is a maintenance release. It contains numerous API improvement and bug fixes. This release is compatible with TensorFlow 2 RC1.
- Support nested layer customization (#PR 1015)
- Support string dtype in InputLayer (#PR 1017)
- Support Dynamic RNN in RNN (#PR 1023)
- Add ResNet50 static model (#PR 1030)
- Add performance test code in static model (#PR 1041)
SpatialTransform2dAffine
autoin_channels
- support TensorFlow 2.0.0-rc1
- Update model weights property, now returns its copy (#PR 1010)
- RNN updates: remove warnings, fix if seq_len=0, unitest (#PR 1033)
- BN updates: fix BatchNorm1d for 2D data, refactored (#PR 1040)
- Fix
tf.models.Model._construct_graph
for list of outputs, e.g. STN case (PR #1010) - Enable better
in_channels
exception raise. (PR #1015) - Set allow_pickle=True in np.load() (#PR 1021)
- Remove
private_method
decorator (#PR 1025) - Copy original model's
trainable_weights
andnontrainable_weights
when initializingModelLayer
(#PR 1026) - Copy original model's
trainable_weights
andnontrainable_weights
when initializingLayerList
(#PR 1029) - Remove redundant parts in
model.all_layers
(#PR 1029) - Replace
tf.image.resize_image_with_crop_or_pad
withtf.image.resize_with_crop_or_pad
(#PR 1032) - Fix a bug in
ResNet50
static model (#PR 1041)
- @zsdonghao
- @luomai
- @ChrisWu1997: #1010 #1015 #1025 #1030 #1040
- @warshallrho: #1017 #1021 #1026 #1029 #1032 #1041
- @ArnoldLIULJ: #1023
- @JingqingZ: #1023
- Add version_info in model.config. (PR #992)
- Replace tf.nn.func with tf.nn.func.__name__ in model config. (PR #994)
- Add Reinforcement learning tutorials. (PR #995)
- Add RNN layers with simple rnn cell, GRU cell, LSTM cell. (PR #998)
- Update Seq2seq (#998)
- Add Seq2seqLuongAttention model (#998)
- @warshallrho: #992 #994
- @quantumiracle: #995
- @Tokarev-TT-33: #995
- @initial-h: #995
- @Officium: #995
- @ArnoldLIULJ: #998
- @JingqingZ: #998
2.0.2 - 2019-6-5
- change the format of network config, change related code and files; change layer act (PR #980)
- Fix dynamic model cannot track PRelu weights gradients problem (PR #982)
- Raise .weights warning (commit)
- @warshallrho: #980
- @1FengL: #982
2.0.1 - 2019-5-17
A maintain release.
- remove
tl.layers.initialize_global_variables(sess)
(PR #931) - support
trainable_weights
(PR #966)
- Layer
InstanceNorm
,InstanceNorm1d
,InstanceNorm2d
,InstanceNorm3d
(PR #963)
- Reinforcement learning tutorials. (PR #995)
- remove
tl.layers.initialize_global_variables(sess)
(PR #931) - update
tutorial_generate_text.py
,tutorial_ptb_lstm.py
. removetutorial_ptb_lstm_state_is_tuple.py
(PR #958) - change
tl.layers.core
,tl.models.core
(PR #966) - change
weights
intoall_weights
,trainable_weights
,nontrainable_weights
- nltk>=3.3,<3.4 => nltk>=3.3,<3.5 (PR #892)
- pytest>=3.6,<3.11 => pytest>=3.6,<4.1 (PR #889)
- yapf>=0.22,<0.25 => yapf==0.25.0 (PR #896)
- imageio==2.5.0 progressbar2==3.39.3 scikit-learn==0.21.0 scikit-image==0.15.0 scipy==1.2.1 wrapt==1.11.1 pymongo==3.8.0 sphinx==2.0.1 wrapt==1.11.1 opencv-python==4.1.0.25 requests==2.21.0 tqdm==4.31.1 lxml==4.3.3 pycodestyle==2.5.0 sphinx==2.0.1 yapf==0.27.0(PR #967)
- fix docs of models @zsdonghao #957
- In
BatchNorm
, keep dimensions of mean and variance to suitchannels first
(PR #963)
- @warshallrho: #PR966
- @zsdonghao: #931
- @yd-yin: #963
- @Tokarev-TT-33: # 995
- @initial-h: # 995
- @quantumiracle: #995
- @Officium: #995
- @1FengL: #958
- @dvklopfenstein: #971
2.0.0 - 2019-05-04
To many PR for this update, please check here for more details.
- update for TensorLayer 2.0.0 alpha version (PR #952)
- support TensorFlow 2.0.0-alpha
- support both static and dynamic model building
- tensorflow>=1.6,<1.13 => tensorflow>=2.0.0-alpha (PR #952)
- h5py>=2.9 (PR #952)
- cloudpickle>=0.8.1 (PR #952)
- remove matplotlib
- @zsdonghao
- @JingqingZ
- @ChrisWu1997
- @warshallrho
1.11.1 - 2018-11-15
- guide for pose estimation - flipping (PR #884)
- cv2 transform support 2 modes (PR #885)
- pytest>=3.6,<3.9 => pytest>=3.6,<3.10 (PR #874)
- requests>=2.19,<2.20 => requests>=2.19,<2.21 (PR #874)
- tqdm>=4.23,<4.28 => tqdm>=4.23,<4.29 (PR #878)
- pytest>=3.6,<3.10 => pytest>=3.6,<3.11 (PR #886)
- pytest-xdist>=1.22,<1.24 => pytest-xdist>=1.22,<1.25 (PR #883)
- tensorflow>=1.6,<1.12 => tensorflow>=1.6,<1.13 (PR #886)
- @zsdonghao: #884 #885
1.11.0 - 2018-10-18
- Layer:
- Release
GroupNormLayer
(PR #850)
- Release
- Image affine transformation APIs
affine_rotation_matrix
(PR #857)affine_horizontal_flip_matrix
(PR #857)affine_vertical_flip_matrix
(PR #857)affine_shift_matrix
(PR #857)affine_shear_matrix
(PR #857)affine_zoom_matrix
(PR #857)affine_transform_cv2
(PR #857)affine_transform_keypoints
(PR #857)
- Affine transformation tutorial
examples/data_process/tutorial_fast_affine_transform.py
(PR #857)
- BatchNormLayer: support
data_format
- matplotlib>=2.2,<2.3 => matplotlib>=2.2,<3.1 (PR #845)
- pydocstyle>=2.1,<2.2 => pydocstyle>=2.1,<3.1 (PR #866)
- scikit-learn>=0.19,<0.20 => scikit-learn>=0.19,<0.21 (PR #851)
- sphinx>=1.7,<1.8 => sphinx>=1.7,<1.9 (PR #842)
- tensorflow>=1.6,<1.11 => tensorflow>=1.6,<1.12 (PR #853)
- tqdm>=4.23,<4.26 => tqdm>=4.23,<4.28 (PR #862 & #868)
- yapf>=0.22,<0.24 => yapf>=0.22,<0.25 (PR #829)
- Correct offset calculation in
tl.prepro.transform_matrix_offset_center
(PR #855)
- @2wins: #850 #855
- @DEKHTIARJonathan: #853
- @zsdonghao: #857
- @luomai: #857
1.10.1 - 2018-09-07
- unittest
tests\test_timeout.py
has been added to ensure the network creation process does not freeze.
- remove 'tensorboard' param, replaced by 'tensorboard_dir' in
tensorlayer/utils.py
with customizable tensorboard directory (PR #819)
- TL Graph API removed. Memory Leaks Issues with this API, will be fixed and integrated in TL 2.0 (PR #818)
- Issue #817 fixed: TL 1.10.0 - Memory Leaks and very slow network creation.
- autopep8>=1.3,<1.4 => autopep8>=1.3,<1.5 (PR #815)
- imageio>=2.3,<2.4 => imageio>=2.3,<2.5 (PR #823)
- pytest>=3.6,<3.8 => pytest>=3.6,<3.9 (PR #823)
- pytest-cov>=2.5,<2.6 => pytest-cov>=2.5,<2.7 (PR #820)
- @DEKHTIARJonathan: #815 #818 #820 #823
- @ndiy: #819
- @zsdonghao: #818
1.10.0 - 2018-09-02
- API:
- Add
tl.model.vgg19
(PR #698) - Add
tl.logging.contrib.hyperdash
(PR #739) - Add
tl.distributed.trainer
(PR #700) - Add
prefetch_buffer_size
to thetl.distributed.trainer
(PR #766) - Add
tl.db.TensorHub
(PR #751) - Add
tl.files.save_graph
(PR #751) - Add
tl.files.load_graph_
(PR #751) - Add
tl.files.save_graph_and_params
(PR #751) - Add
tl.files.load_graph_and_params
(PR #751) - Add
tl.prepro.keypoint_random_xxx
(PR #787)
- Add
- Documentation:
- Add binary, ternary and dorefa links (PR #711)
- Update input scale of VGG16 and VGG19 to 0~1 (PR #736)
- Update database (PR #751)
- Layer:
- Release SwitchNormLayer (PR #737)
- Release QuanConv2d, QuanConv2dWithBN, QuanDenseLayer, QuanDenseLayerWithBN (PR#735)
- Update Core Layer to support graph (PR #751)
- All Pooling layers support
data_format
(PR #809)
- Setup:
- Creation of installation flaggs
all_dev
,all_cpu_dev
, andall_gpu_dev
(PR #739)
- Creation of installation flaggs
- Examples:
- change folder struction (PR #802)
tutorial_models_vgg19
has been introduced to show how to usetl.model.vgg19
(PR #698).- fix bug of
tutorial_bipedalwalker_a3c_continuous_action.py
(PR #734, Issue #732) tutorial_models_vgg16
andtutorial_models_vgg19
has been changed the input scale from [0,255] to [0,1](PR #710)tutorial_mnist_distributed_trainer.py
andtutorial_cifar10_distributed_trainer.py
are added to explain the uses of Distributed Trainer (PR #700)- add
tutorial_quanconv_cifar10.py
andtutorial_quanconv_mnist.py
(PR #735) - add
tutorial_work_with_onnx.py
(PR #775)
- Applications:
- function minibatches changed to avoid wasting samples.(PR #762)
- all the input scale in both vgg16 and vgg19 has been changed the input scale from [0,255] to [0,1](PR #710)
- Dockerfiles merged and refactored into one file (PR #747)
- LazyImports move to the most top level imports as possible (PR #739)
- some new test functions have been added in
test_layers_convolution.py
,test_layers_normalization.py
,test_layers_core.py
(PR #735) - documentation now uses mock imports reducing the number of dependencies to compile the documentation (PR #785)
- fixed and enforced pydocstyle D210, D200, D301, D207, D403, D204, D412, D402, D300, D208 (PR #784)
tl.logging.warn
has been deprecated in favor oftl.logging.warning
(PR #739)
conv_layers()
has been removed in both vgg16 and vgg19(PR #710)- graph API (PR #818)
- import error caused by matplotlib on OSX (PR #705)
- missing import in tl.prepro (PR #712)
- Dockerfiles import error fixed - issue #733 (PR #747)
- Fix a typo in
absolute_difference_error
in file:tensorlayer/cost.py
- Issue #753 (PR #759) - Fix the bug of scaling the learning rate of trainer (PR #776)
- log error instead of info when npz file not found. (PR #812)
- numpy>=1.14,<1.15 => numpy>=1.14,<1.16 (PR #754)
- pymongo>=3.6,<3.7 => pymongo>=3.6,<3.8 (PR #750)
- pytest>=3.6,<3.7 => tqdm>=3.6,<3.8 (PR #798)
- pytest-xdist>=1.22,<1.23 => pytest-xdist>=1.22,<1.24 (PR #805 and #806)
- tensorflow>=1.8,<1.9 => tensorflow>=1.6,<1.11 (PR #739 and PR #798)
- tqdm>=4.23,<4.25 => tqdm>=4.23,<4.26 (PR #798)
- yapf>=0.21,<0.22 => yapf>=0.22,<0.24 (PR #798 #808)
- @DEKHTIARJonathan: #739 #747 #750 #754
- @lgarithm: #705 #700
- @OwenLiuzZ: #698 #710 #775 #776
- @zsdonghao: #711 #712 #734 #736 #737 #700 #751 #809 #818
- @luomai: #700 #751 #766 #802
- @XJTUWYD: #735
- @mutewall: #735
- @thangvubk: #759
- @JunbinWang: #796
- @boldjoel: #787
1.9.1 - 2018-07-30
- Issue with tensorflow 1.10.0 fixed
1.9.0 - 2018-06-16
-
API:
tl.alphas
andtl.alphas_like
added following the tf.ones/zeros and tf.zeros_like/ones_like (PR #580)tl.lazy_imports.LazyImport
to import heavy libraries only when necessary (PR #667)tl.act.leaky_relu6
andtl.layers.PRelu6Layer
have been deprecated (PR #686)tl.act.leaky_twice_relu6
andtl.layers.PTRelu6Layer
have been deprecated (PR #686)
-
CI Tool:
- Stale Probot added to clean stale issues (PR #573)
- Changelog Probot Configuration added (PR #637)
- Travis Builds now handling a matrix of TF Version from TF==1.6.0 to TF==1.8.0 (PR #644)
- CircleCI added to build and upload Docker Containers for each PR merged and tag release (PR #648)
-
Decorator:
tl.decorators
API created includingdeprecated_alias
andprivate_method
(PR #660)tl.decorators
API enriched withprotected_method
(PR #675)tl.decorators
API enriched withdeprecated
directly raising warning and modifying documentation (PR #691)
-
Docker:
- Containers for each release and for each PR merged on master built (PR #648)
- Containers built in the following configurations (PR #648):
- py2 + cpu
- py2 + gpu
- py3 + cpu
- py3 + gpu
-
Documentation:
- Clean README.md (PR #677)
- Release semantic version added on index page (PR #633)
- Optimizers page added (PR #636)
AMSGrad
added on Optimizers page added (PR #636)
-
Layer:
- ElementwiseLambdaLayer added to use custom function to connect multiple layer inputs (PR #579)
- AtrousDeConv2dLayer added (PR #662)
- Fix bugs of using
tf.layers
in CNN (PR #686)
-
Optimizer:
- AMSGrad Optimizer added based on
On the Convergence of Adam and Beyond (ICLR 2018)
(PR #636)
- AMSGrad Optimizer added based on
-
Setup:
- Creation of installation flaggs
all
,all_cpu
, andall_gpu
(PR #660)
- Creation of installation flaggs
-
Test:
test_utils_predict.py
added to reproduce and fix issue #288 (PR #566)Layer_DeformableConvolution_Test
added to reproduce issue #572 with deformable convolution (PR #573)Array_Op_Alphas_Test
andArray_Op_Alphas_Like_Test
added to testtensorlayer/array_ops.py
file (PR #580)test_optimizer_amsgrad.py
added to testAMSGrad
optimizer (PR #636)test_logging.py
added to insure robustness of the logging API (PR #645)test_decorators.py
added (PR #660)test_activations.py
added (PR #686)
-
Tutorials:
tutorial_tfslim
has been introduced to show how to useSlimNetsLayer
(PR #560).- add the following to all tutorials (PR #697):
tf.logging.set_verbosity(tf.logging.DEBUG) tl.logging.set_verbosity(tl.logging.DEBUG)
- Tensorflow CPU & GPU dependencies moved to separated requirement files in order to allow PyUP.io to parse them (PR #573)
- The document of LambdaLayer for linking it with ElementwiseLambdaLayer (PR #587)
- RTD links point to stable documentation instead of latest used for development (PR #633)
- TF Version older than 1.6.0 are officially unsupported and raises an exception (PR #644)
- README.md Badges Updated with Support Python and Tensorflow Versions (PR #644)
- TL logging API has been consistent with TF logging API and thread-safe (PR #645)
- Relative Imports changed for absolute imports (PR #657)
tl.files
refactored into a directory with numerous files (PR #657)tl.files.voc_dataset
fixed because of original Pascal VOC website was down (PR #657)- extra requirements hidden inside the library added in the project requirements (PR #657)
- requirements files refactored in
requirements/
directory (PR #657) - README.md and other markdown files have been refactored and cleaned. (PR #639)
- Ternary Convolution Layer added in unittest (PR #658)
- Convolution Layers unittests have been cleaned & refactored (PR #658)
- All the tests are now using a DEBUG level verbosity when run individualy (PR #660)
tf.identity
as activation is ignored, thus reducing the size of the graph by removing useless operation (PR #667)- argument dictionaries are now checked and saved within the
Layer
Base Class (PR #667) Layer
Base Class now presenting methods to update faultlesslyall_layers
,all_params
, andall_drop
(PR #675)- Input Layers have been removed from
tl.layers.core
and added totl.layers.inputs
(PR #675) - Input Layers are now considered as true layers in the graph (they represent a placeholder), unittests have been updated (PR #675)
- Layer API is simplified, with automatic feeding
prev_layer
intoself.inputs
(PR #675) - Complete Documentation Refactoring and Reorganization (namely Layer APIs) (PR #691)
tl.layers.TimeDistributedLayer
argurmentargs
is deprecated in favor oflayer_args
(PR #667)tl.act.leaky_relu
have been deprecated in favor oftf.nn.leaky_relu
(PR #686)
assert()
calls remove and replaced byraise AssertionError()
(PR #667)tl.identity
is removed, not used anymore and deprecated for a long time (PR #667)- All Code specific to
TF.__version__ < "1.6"
have been removed (PR #675)
- Issue #498 - Deprecation Warning Fix in
tl.layers.RNNLayer
withinspect
(PR #574) - Issue #498 - Deprecation Warning Fix in
tl.files
with truth value of an empty array is ambiguous (PR #575) - Issue #565 related to
tl.utils.predict
fixed -np.hstack
problem in which the results for multiple batches are stacked alongaxis=1
(PR #566) - Issue #572 with
tl.layers.DeformableConv2d
fixed (PR #573) - Issue #664 with
tl.layers.ConvLSTMLayer
fixed (PR #676) - Typo of the document of ElementwiseLambdaLayer (PR #588)
- Error in
tl.layers.TernaryConv2d
fixed - self.inputs not defined (PR #658) - Deprecation warning fixed in
tl.layers.binary._compute_threshold()
(PR #658) - All references to
tf.logging
replaced bytl.logging
(PR #661) - Duplicated code removed when bias was used (PR #667)
tensorlayer.third_party.roi_pooling.roi_pooling.roi_pooling_ops
is now lazy loaded to prevent systematic error raised (PR #675)- Documentation not build in RTD due to old version of theme in docs directory fixed (PR #703)
- Tutorial:
tutorial_word2vec_basic.py
saving issue #476 fixed (PR #635)- All tutorials tested and errors have been fixed (PR #635)
- Update pytest from 3.5.1 to 3.6.0 (PR #647)
- Update progressbar2 from 3.37.1 to 3.38.0 (PR #651)
- Update scikit-image from 0.13.1 to 0.14.0 (PR #656)
- Update keras from 2.1.6 to 2.2.0 (PR #684)
- Update requests from 2.18.4 to 2.19.0 (PR #695)
- @lgarithm: #563
- @DEKHTIARJonathan: #573 #574 #575 #580 #633 #635 #636 #639 #644 #645 #648 #657 #667 #658 #659 #660 #661 #666 #667 #672 #675 #683 #686 #687 #690 #691 #692 #703
- @2wins: #560 #566 #662
- @One-sixth: #579
- @zsdonghao: #587 #588 #639 #685 #697
- @luomai: #639 #677
- @dengyueyun666: #676
1.8.5 - 2018-05-09
- Github Templates added (by @DEKHTIARJonathan)
- New issues Template
- New PR Template
- Travis Deploy Automation on new Tag (by @DEKHTIARJonathan)
- Deploy to PyPI and create a new version.
- Deploy to Github Releases and upload the wheel files
- PyUP.io has been added to ensure we are compatible with the latest libraries (by @DEKHTIARJonathan)
deconv2d
now handling dilation_rate (by @zsdonghao)- Documentation unittest added (by @DEKHTIARJonathan)
test_layers_core
has been added to ensure thatLayersConfig
is abstract.
- All Tests Refactored - Now using unittests and runned with PyTest (by @DEKHTIARJonathan)
- Documentation updated (by @zsdonghao)
- Package Setup Refactored (by @DEKHTIARJonathan)
- Dataset Downlaod now using library progressbar2 (by @DEKHTIARJonathan)
deconv2d
function transformed into Class (by @zsdonghao)conv1d
function transformed into Class (by @zsdonghao)- super resolution functions transformed into Class (by @zsdonghao)
- YAPF coding style improved and enforced (by @DEKHTIARJonathan)
- Backward Compatibility Restored with deprecation warnings (by @DEKHTIARJonathan)
- Tensorflow Deprecation Fix (Issue #498):
- AverageEmbeddingInputlayer (by @zsdonghao)
- load_mpii_pose_dataset (by @zsdonghao)
- maxPool2D initializer issue #551 (by @zsdonghao)
LayersConfig
class has been enforced as abstract- Pooling Layer Issue #557 fixed (by @zsdonghao)
- scipy>=1.0,<1.1 => scipy>=1.1,<1.2
@zsdonghao @luomai @DEKHTIARJonathan