Skip to content

Releases: tensorlayer/TensorLayer

TensorLayer 1.8.6rc4

07 Jun 14:30
Compare
Choose a tag to compare
TensorLayer 1.8.6rc4 Pre-release
Pre-release

Changelog

Added

Changed

  • Tensorflow CPU & GPU dependencies moved to separated requirement files in order to allow PyUP.io to parse them (by @DEKHTIARJonathan in #573)
  • The document of LambdaLayer for linking it with ElementwiseLambdaLayer (by @zsdonghao in #587)
  • RTD links point to stable documentation instead of latest used for development (by @DEKHTIARJonathan in #633)
  • TF Version older than 1.6.0 are officially unsupported and raises an exception (by @DEKHTIARJonathan in #644)
  • Readme Badges Updated with Support Python and Tensorflow Versions (by @DEKHTIARJonathan in #644)
  • TL logging API has been consistent with TF logging API and thread-safe (by @DEKHTIARJonathan in #645)
  • Relative Imports changed for absolute imports (by @DEKHTIARJonathan in #657)
  • tl.files refactored into a directory with numerous files (by @DEKHTIARJonathan in #657)
  • tl.files.voc_dataset fixed because of original Pascal VOC website was down (by @DEKHTIARJonathan in #657)
  • extra requirements hidden inside the library added in the project requirements (by @DEKHTIARJonathan in #657)
  • requirements files refactored in requirements/ directory (by @DEKHTIARJonathan in #657)
  • README.md and other markdown files have been refactored and cleaned. (by @zsdonghao @DEKHTIARJonathan @luomai in #639)
  • Ternary Convolution Layer added in unittest (by @DEKHTIARJonathan in #658)
  • Convolution Layers unittests have been cleaned & refactored (by @DEKHTIARJonathan in #658)
  • All the tests are now using a DEBUG level verbosity when run individualy (by @DEKHTIARJonathan in #660)
  • tf.identity as activation is ignored, thus reducing the size of the graph by removing useless operation (by @DEKHTIARJonathan in #667)
  • argument dictionaries are now checked and saved within the Layer Base Class (by @DEKHTIARJonathan in #667)
  • Layer Base Class now presenting methods to update faultlessly all_layers, all_params, and all_drop (by @DEKHTIARJonathan in #675)
  • Input Layers have been removed from tl.layers.core and added to tl.layers.inputs (by @DEKHTIARJonathan in #675)
  • Input Layers are now considered as true layers in the graph (they represent a placeholder), unittests have been updated (by @DEKHTIARJonathan in #675)
  • Layer API is simplified, with automatic feeding prev_layer into self.inputs (by @DEKHTIARJonathan in #675)

Deprecated

  • tl.layers.TimeDistributedLayer argurment args is deprecated in favor of layer_args (by @DEKHTIARJonathan in #667)

Removed

Fixed

Dependencies Update

Contributors

@lgarithm @DEKHTIARJonathan @2wins @One-sixth @zsdonghao @luomai

TensorLayer 1.8.6rc3

06 Jun 12:37
ba43db8
Compare
Choose a tag to compare
TensorLayer 1.8.6rc3 Pre-release
Pre-release

Changelog

Added

Changed

  • Tensorflow CPU & GPU dependencies moved to separated requirement files in order to allow PyUP.io to parse them (by @DEKHTIARJonathan in #573)
  • The document of LambdaLayer for linking it with ElementwiseLambdaLayer (by @zsdonghao in #587)
  • RTD links point to stable documentation instead of latest used for development (by @DEKHTIARJonathan in #633)
  • TF Version older than 1.6.0 are officially unsupported and raises an exception (by @DEKHTIARJonathan in #644)
  • Readme Badges Updated with Support Python and Tensorflow Versions (by @DEKHTIARJonathan in #644)
  • TL logging API has been consistent with TF logging API and thread-safe (by @DEKHTIARJonathan in #645)
  • Relative Imports changed for absolute imports (by @DEKHTIARJonathan in #657)
  • tl.files refactored into a directory with numerous files (by @DEKHTIARJonathan in #657)
  • tl.files.voc_dataset fixed because of original Pascal VOC website was down (by @DEKHTIARJonathan in #657)
  • extra requirements hidden inside the library added in the project requirements (by @DEKHTIARJonathan in #657)
  • requirements files refactored in requirements/ directory (by @DEKHTIARJonathan in #657)
  • README.md and other markdown files have been refactored and cleaned. (by @zsdonghao @DEKHTIARJonathan @luomai in #639)
  • Ternary Convolution Layer added in unittest (by @DEKHTIARJonathan in #658)
  • Convolution Layers unittests have been cleaned & refactored (by @DEKHTIARJonathan in #658)
  • All the tests are now using a DEBUG level verbosity when run individualy (by @DEKHTIARJonathan in #660)
  • tf.identity as activation is ignored, thus reducing the size of the graph by removing useless operation (by @DEKHTIARJonathan in #667)
  • argument dictionaries are now checked and saved within the Layer Base Class (by @DEKHTIARJonathan in #667)
  • Layer Base Class now presenting methods to update faultlessly all_layers, all_params, and all_drop (by @DEKHTIARJonathan in #675)
  • Input Layers have been removed from tl.layers.core and added to tl.layers.inputs (by @DEKHTIARJonathan in #675)
  • Input Layers are now considered as true layers in the graph (they represent a placeholder), unittests have been updated (by @DEKHTIARJonathan in #675)
  • Layer API is simplified, with automatic feeding prev_layer into self.inputs (by @DEKHTIARJonathan in #675)

Deprecated

  • tl.layers.TimeDistributedLayer argurment args is deprecated in favor of layer_args (by @DEKHTIARJonathan in #667)

Removed

Fixed

Security

Dependencies Update

Contributors

@lgarithm @DEKHTIARJonathan @2wins @One-sixth @zsdonghao @luomai

TensorLayer 1.8.6rc2

04 Jun 15:11
Compare
Choose a tag to compare
TensorLayer 1.8.6rc2 Pre-release
Pre-release

Changelog

Added

Changed

  • Tensorflow CPU & GPU dependencies moved to separated requirement files in order to allow PyUP.io to parse them (by @DEKHTIARJonathan in #573)
  • The document of LambdaLayer for linking it with ElementwiseLambdaLayer (by @zsdonghao in #587)
  • RTD links point to stable documentation instead of latest used for development (by @DEKHTIARJonathan in #633)
  • TF Version older than 1.6.0 are officially unsupported and raises an exception (by @DEKHTIARJonathan in #644)
  • Readme Badges Updated with Support Python and Tensorflow Versions (by @DEKHTIARJonathan in #644)
  • TL logging API has been consistent with TF logging API and thread-safe (by @DEKHTIARJonathan in #645)
  • Relative Imports changed for absolute imports (by @DEKHTIARJonathan in #657)
  • tl.files refactored into a directory with numerous files (by @DEKHTIARJonathan in #657)
  • tl.files.voc_dataset fixed because of original Pascal VOC website was down (by @DEKHTIARJonathan in #657)
  • extra requirements hidden inside the library added in the project requirements (by @DEKHTIARJonathan in #657)
  • requirements files refactored in requirements/ directory (by @DEKHTIARJonathan in #657)
  • README.md and other markdown files have been refactored and cleaned. (by @zsdonghao @DEKHTIARJonathan @luomai in #639)
  • Ternary Convolution Layer added in unittest (by @DEKHTIARJonathan in #658)
  • Convolution Layers unittests have been cleaned & refactored (by @DEKHTIARJonathan in #658)
  • All the tests are now using a DEBUG level verbosity when run individualy (by @DEKHTIARJonathan in #660)
  • tf.identity as activation is ignored, thus reducing the size of the graph by removing useless operation (by @DEKHTIARJonathan in #667)
  • argument dictionaries are now checked and saved within the Layer Base Class (by @DEKHTIARJonathan in #667)
  • Layer Base Class now presenting methods to update faultlessly all_layers, all_params, and all_drop (by @DEKHTIARJonathan in #675)
  • Input Layers have been removed from tl.layers.core and added to tl.layers.inputs (by @DEKHTIARJonathan in #675)
  • Input Layers are now considered as true layers in the graph (they represent a placeholder), unittests have been updated (by @DEKHTIARJonathan in #675)
  • Layer API is simplified, with automatic feeding prev_layer into self.inputs (by @DEKHTIARJonathan in #675)

Deprecated

  • tl.layers.TimeDistributedLayer argurment args is deprecated in favor of layer_args (by @DEKHTIARJonathan in #667)

Removed

Fixed

Dependencies Update

Contributors

@lgarithm @DEKHTIARJonathan @2wins @One-sixth @zsdonghao @luomai

TensorLayer 1.8.6rc1

03 Jun 12:02
2d70178
Compare
Choose a tag to compare
TensorLayer 1.8.6rc1 Pre-release
Pre-release

Changelog

Added

Changed

Deprecated

  • tl.layers.TimeDistributedLayer argurment args is deprecated in favor of layer_args (by @DEKHTIARJonathan in #667)

Removed

Fixed

Dependencies Update

Contributors

@lgarithm @DEKHTIARJonathan @2wins @One-sixth @zsdonghao @luomai

TensorLayer 1.8.6rc0

01 Jun 16:07
cc39503
Compare
Choose a tag to compare
TensorLayer 1.8.6rc0 Pre-release
Pre-release

ChangeLog

Added

Changed

Fixed

Dependencies Update

Contributors

@lgarithm @DEKHTIARJonathan @2wins @One-sixth @zsdonghao @luomai

TensorLayer 1.8.5

09 May 22:29
74a59ce
Compare
Choose a tag to compare

Added

  • 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 that LayersConfig is abstract.

Changed

Fixed

  • Backward Compatibility Restored with deprecation warnings (by @DEKHTIARJonathan)
  • Tensorflow Deprecation Fix (Issue #498):
  • maxPool2D initializer issue #551 (by @zsdonghao)
  • LayersConfig class has been enforced as abstract
  • Pooling Layer Issue #557 fixed (by @zsdonghao)

Dependencies Update

  • scipy>=1.0,<1.1 => scipy>=1.1,<1.2

Contributors

@zsdonghao @luomai @DEKHTIARJonathan

TensorLayer 1.8.5rc2

22 Apr 09:19
025feef
Compare
Choose a tag to compare
TensorLayer 1.8.5rc2 Pre-release
Pre-release

Changelog

  • Restored backward compatibility with deprecation warnings (by @DEKHTIARJonathan)
  • All Tests Refactored - Now using unittests and runned with PyTest (by @DEKHTIARJonathan)
  • Github Templates added (by @DEKHTIARJonathan)
    • New issues Template
    • New PR Template
  • Documentation updated (by @zsdonghao)
  • Package Setup Refactored (by @DEKHTIARJonathan)
  • deconv2d function transformed into Class (by @zsdonghao)
  • conv1d function transformed into Class (by @zsdonghao)
  • deconv2d now handling dilation_rate
  • 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
  • Dataset Downlaod now using library progressbar2 (by @DEKHTIARJonathan)
  • Tensorflow Deprecation Fix (Issue #498):
  • update super resolution from function to class (by @zsdonghao)
  • YAPF coding style improved and enforced (by @DEKHTIARJonathan)
  • Documentation unittest added (by @DEKHTIARJonathan)

Contributors:

@zsdonghao @luomai @DEKHTIARJonathan

TensorLayer 1.8.5rc1

17 Apr 13:23
4a188e7
Compare
Choose a tag to compare

Changelog

  • Restored backward compatibility with deprecation warnings (by @DEKHTIARJonathan)
  • All Tests Refactored - Now using unittests and runned with PyTest (by @DEKHTIARJonathan)
  • Github Templates added (by @DEKHTIARJonathan)
    • New issues Template
    • New PR Template
  • Documentation updated (by @zsdonghao)
  • Package Setup Refactored (by @DEKHTIARJonathan)
  • deconv2d function transformed into Class (by @zsdonghao)
  • conv1d function transformed into Class (by @zsdonghao)
  • deconv2d now handling dilation_rate
  • 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

Contributors:

@zsdonghao @luomai @DEKHTIARJonathan

TensorLayer 1.8.5rc0

17 Apr 08:22
Compare
Choose a tag to compare
TensorLayer 1.8.5rc0 Pre-release
Pre-release

Changelog

Contributors:

@zsdonghao @luomai @DEKHTIARJonathan

TensorLayer 1.8.4

13 Apr 15:51
65e4029
Compare
Choose a tag to compare

New Support

  • Release experimental APIs to download and visualize MPII dataset (Pose Estimation) in one line of code (by @zsdonghao)
>>> import pprint
>>> import tensorlayer as tl
>>> img_train_list, ann_train_list, img_test_list, ann_test_list = tl.files.load_mpii_pose_dataset()
>>> image = tl.vis.read_image(img_train_list[0])
>>> tl.vis.draw_mpii_pose_to_image(image, ann_train_list[0], 'image.png')
>>> pprint.pprint(ann_train_list[0])
  • Release tl.models API - Provides pre-trained VGG16, SqueezeNet and MobileNetV1 in one line of code (by @lgarithm @zsdonghao), more models will be provided soon!

Classify ImageNet classes, see tutorial_models_mobilenetv1.py

>>> x = tf.placeholder(tf.float32, [None, 224, 224, 3])
>>> # get the whole model
>>> net = tl.models.MobileNetV1(x)
>>> # restore pre-trained parameters
>>> sess = tf.InteractiveSession()
>>> net.restore_params(sess)
>>> # use for inferencing
>>> probs = tf.nn.softmax(net.outputs)

Extract features and Train a classifier with 100 classes

>>> x = tf.placeholder(tf.float32, [None, 224, 224, 3])
>>> # get model without the last layer
>>> cnn = tl.models.MobileNetV1(x, end_with='reshape')
>>> # add one more layer
>>> net = Conv2d(cnn, 100, (1, 1), (1, 1), name='out')
>>> net = FlattenLayer(net, name='flatten')
>>> # initialize all parameters
>>> sess = tf.InteractiveSession()
>>> tl.layers.initialize_global_variables(sess)
>>> # restore pre-trained parameters
>>> cnn.restore_params(sess)
>>> # train your own classifier (only update the last layer)
>>> train_params = tl.layers.get_variables_with_name('out')

Reuse model

>>> x1 = tf.placeholder(tf.float32, [None, 224, 224, 3])
>>> x2 = tf.placeholder(tf.float32, [None, 224, 224, 3])
>>> # get network without the last layer
>>> net1 = tl.models.MobileNetV1(x1, end_with='reshape')
>>> # reuse the parameters with different input
>>> net2 = tl.models.MobileNetV1(x2, end_with='reshape', reuse=True)
>>> # restore pre-trained parameters (as they share parameters, we don’t need to restore net2)
>>> sess = tf.InteractiveSession()
>>> net1.restore_params(sess)

New Example

  • TensorFlow Dataset API for VOC dataset augmentation here (by @zsdonghao)

New Update

  • Update tl.iterate.minibatch to support list input (by @zsdonghao)

API Change Log

@DEKHTIARJonathan give a list of API change log here #479

    1. Layer API Change

As it is an absolute central class, one change here are leading to changes everywhere.
If any modification is done here, it should be done with a deprecation warning.

## Before
layer = tl.layers.BatchNormLayer(layer = layer)
layer = tl.layers.PReluLayer(layer  = layer)

## Now
layer = tl.layers.BatchNormLayer(prev_layer = layer)
layer = tl.layers.PReluLayer(prev_layer= layer)

Commit introduced this change: b2e6ccc

Why the API was changed ? As you may guess, just this change lead to many projects raising errors and needing to be updated. We struggle to have tutorials and examples around with TL and this change is not helping with backward compatibility.

    1. DeConv2d API Change
## Before
tl.layers.DeConv2d(layer=layer,  n_out_channel = 16)

## Now
tl.layers.DeConv2d(layer=layer,  n_filter = 16)

Here we have two problems:

  1. This Layer has now an inconsistent API with the rest of the TL library (this layer use layer instead of prev_layer).
  2. Again, no deprecation warning with the changes from n_out_channel to n_filter which may immediately make most GANs/AEs not working without a fix.
    1. Reuse Variable Scope

You have correctly mentioned a deprecation warning, however it would be better to mention an appropriate fix and not just say "it's deprecated, deal with it now !"

I give you an example:

with tf.variable_scope("my_scope", reuse=reuse) as scope:
    # tl.layers.set_name_reuse(reuse) # deprecated
    if reuse:
        scope.reuse_variables()

Quite easy to add inside the deprecation warning and now it provides a simple solution to fix the issue.

    1. No mention in the Changelog of an API change of the ReshapeLayer
## Before
layer = tl.layers.ReshapeLayer(
    layer,
    shape = [-1, 256, 256, 3]
)

## Now
layer = tl.layers.ReshapeLayer(
    layer,
    shape = (-1, 256, 256, 3) # Must use a tuple, a list is not accepted anymore
)