Releases: tensorflow/tensorflow
TensorFlow 1.1.0-rc0
Release 1.1.0
Major Features and Improvements
- Added Java API support for Windows.
- Added
tf.spectral
module. Moved existing FFT ops totf.spectral
while
keeping an alias in the old location (tf.*
). - Added 1D, 2D and 3D Fourier transform ops for real signals to
tf.spectral
. - Added a
tf.bincount
function. - Added Keras 2 API to contrib.
- Added a new lightweight queue-like object -
RecordInput
. - Added
tf.contrib.image.compose_transforms
function. - Bring
tf.estimator.*
into the API. Non-deprecated functionality fromtf.contrib.learn.Estimator
is moved totf.estimator.Estimator
with cosmetic changes. - Docker images: TF images on gcr.io and Docker Hub are upgraded to ubuntu:16.04.
- Added the following features to TensorFlow Debugger (tfdbg):
- Ability to inspect Python source file against TF ops and tensors (command
print_source
/ps
) - New navigation bar in Curses-based UI
- NodeStepper (command
invoke_stepper
) now uses intermediate tensor dumps. It also usesTensorHandles
as direct feeds during successivecont
calls for improved performance and reduced memory consumption.
- Ability to inspect Python source file against TF ops and tensors (command
Deprecations
- TensorFlow 1.1.0 will be the last time we release a binary with Mac GPU support. Going forward, we will stop testing on Mac GPU systems. We continue to welcome patches that maintain Mac GPU support, and we will try to keep the Mac GPU build working.
Changes to contrib APIs
- The behavior of RNNCells is now stricter due to the transition towards making RNNCells act more like Keras layers.
- If an RNNCell is used twice in two different variable scopes, an error is raised describing how to avoid this behavior.
- If an RNNCell is used in a variable scope with existing conflicting variables, an error is raised showing that the RNNCell must be constructed with argument
reuse=True
.
- Deprecated contrib/distributions
pmf
,pdf
,log_pmf
,log_pdf
. - Moved
bayesflow.special_math
to distributions. tf.contrib.tensor_forest.python.tensor_forest.RandomForestDeviceAssigner
removed.- Changed some MVN classes and parameters:
tf.contrib.distributions.MultivariateNormalFull
replaced bytf.contrib.distributions.MultivariateNormalTriL
.tf.contrib.distributions.MultivariateNormalCholesky
replaced bytf.contrib.distributions.MultivariateNormalTriL
tf.contrib.distributions.MultivariateNormalDiagWithSoftplusStDev
replaced
bytf.contrib.distributions.MultivariateNormalDiagWithSoftplusScale
tf.contrib.distributions.MultivariateNormalDiag
arguments changed frommu
,diag_stddev
tolog
,scale_diag
.tf.contrib.distributions.MultivariateNormalDiagPlusVDVT
removed.tf.contrib.distributions.MultivariateNormalDiagPlusLowRank
added.
Bug Fixes and Other Changes
- Java: Support for loading models exported using the SavedModel API (courtesy @EronWright).
- Go: Added support for incremental graph execution.
- Fix a bug in the WALS solver when single-threaded.
- Added support for integer sparse feature values in
tf.contrib.layers.sparse_column_with_keys
. - Fixed
tf.set_random_seed(0)
to be deterministic for all ops. - Stability improvements for the GCS file system support.
- Improved TensorForest performance.
- Added support for multiple filename globs in
tf.matching_files
. LogMessage
now includes a timestamp as beginning of a message.- Added MultiBox person detector example standalone binary.
- Android demo: Makefile build functionality added to build.gradle to fully support building TensorFlow demo in Android on Windows.
- Android demo: read MultiBox priors from txt file rather than protobuf.
- Added colocation constraints to
StagingArea
. sparse_matmul_op
reenabled for Android builds.- Restrict weights rank to be the same as the broadcast target, to avoid ambiguity on broadcast rules.
- Upgraded libxsmm to 1.7.1 and applied other changes for performance and memory usage.
- Fixed bfloat16 integration of LIBXSMM sparse mat-mul.
- Improved performance and reduce memory usage by allowing ops to forward input buffers to output buffers and perform computations in-place.
- Improved the performance of CPU assignment for strings.
- Speed up matrix * vector multiplication and matrix * matrix with unknown shapes.
- C API: Graph imports now support input remapping, control dependencies, and returning imported nodes (see
TF_GraphImportGraphDefWithReturnOutputs()
) - Multiple C++ API updates.
- Multiple TensorBoard updates including:
- Users can now view image summaries at various sampled steps (instead of just the last step).
- Bugs involving switching runs as well as the image dashboard are fixed.
- Removed data download links from TensorBoard.
- TensorBoard uses a relative data directory, for easier embedding.
- TensorBoard automatically ignores outliers for domain calculation, and formats proportional values consistently.
- Multiple tfdbg bug fixes:
- Fixed Windows compatibility issues.
- Command history now persists across runs.
Thanks to our Contributors
This release contains contributions from many people at Google, as well as:
A. Besir Kurtulmus, Adal Chiriliuc, @akash, Alec-Desouza, Alex Rothberg, Alex
Sergeev, Alexander Heinecke, Allen Guo, Andreas Madsen, Ankesh Anand, Anton
Loss, @aravind, @Arie, Ashutosh Das, AuréLien Geron, Bairen Yi, @bakunyo, Ben
Visser, Brady Zhou, Calpa Liu, Changming Sun, Chi Zeng, Chih Cheng Liang,
Christopher Berner, Clark Zinzow, @Conchylicultor, Courtial Florian, Dan Ellis,
Dan J, Dan Jarvis, Daniel Ylitalo, Darren Garvey, David Norman, David Truong,
@DavidNorman, Dimitar Pavlov, Dmitry Persiyanov, @eddie, @elirex, Erfan
Noury, Eron Wright, Evgeny Mazovetskiy, Fabrizio (Misto) Milo, @fanlu, Fisher
Coder, Franck Dernoncourt, Gagan Goel, Gao, Xiang, @Gautam, Gefu Tang,
@guilherme, @guschmue, Hannah Provenza, Hans Pabst, @hartb, Hsiao Yi, Huazuo
Gao, Igor ChorążEwicz, Ivan Smirnov, Jakub Kolodziejczyk, Jason Gavris, Jason
Morton, Jay Young, Jayaram Bobba, Jeremy Sawruk, Jiaming Liu, Jihun Choi,
@jiqiu, Joan Thibault, John C F, Jojy G Varghese, Jon Malmaud, Julian Berman,
Julian Niedermeier, Junpeng Lao, Kai Sasaki, @Kankroc, Karl Lessard, Kyle
Bostelmann, @lezcano, Li Yi, Luo Yun, @lurker, Mahmoud-Abuzaina, Mandeep Singh,
Marek Kolodziej, Mark Szepieniec, Martial Hue, Medhat Omr, Memo Akten, Michael
Gharbi, MichaëL Defferrard, Milan Straka, @MircoT, @mlucool, Muammar Ibn Faisal,
Nayana Thorat, @nghiattran, Nicholas Connor, Nikolaas Steenbergen, Niraj Patel,
Niranjan Hasabnis, @panmari, Pavel Bulanov, Philip Pries Henningsen, Philipp
Jund, @polonez, Prayag Verma, Rahul Kavi, Raphael Gontijo Lopes, @rasbt, Raven
Iqqe, Reid Pryzant, Richard Shin, Rizwan Asif, Russell Kaplan, Ryo Asakura,
RüDiger Busche, Saisai Shao, Sam Abrahams, @sanosay, Sean Papay, @SeaOtterMan,
@selay01, Shaurya Sharma, Sriram Narayanamoorthy, Stefano Probst, @taknevski,
@tbonza, @teldridge11, Yuan (Terry) Tang, Tim Anglade, Tomas Reimers, Tomer Gafner,
Valentin Iovene, Vamsi Sripathi, Viktor Malyi, Vit Stepanovs, Vivek Rane, Vlad
Firoiu, @wangg12, @will, Xiaoyu Tao, Yaroslav Bulatov, Yuan (Terry) Tang,
@yufeng, Yuming Wang, Yuxin Wu, Zafar Takhirov, Ziming Dong
We are also grateful to all who filed issues or helped resolve them, asked and
answered questions, and were part of inspiring discussions.
TensorFlow 1.0.1
Bug Fixes and Other Changes
- Change GraphConstructor to not increase the version when importing, but instead take the min of all versions.
- Google Cloud Storage fixes.
- Removed
tf.core
andtf.python
modules from the API. These were never intended to be exposed. Please use the same objects through top-leveltf
module instead.
TensorFlow 1.0.0
Major Features and Improvements
- XLA (experimental): initial release of XLA, a domain-specific compiler for TensorFlow graphs, that targets CPUs and GPUs.
- TensorFlow Debugger (tfdbg): command-line interface and API.
- New python 3 docker images added.
- Made pip packages pypi compliant. TensorFlow can now be installed by
pip install tensorflow
command. - Several python API calls have been changed to resemble NumPy more closely.
- New (experimental) Java API.
- Android: new person detection + tracking demo implementing "Scalable Object Detection using Deep Neural Networks" (with additional YOLO object detector support)
- Android: new camera-based image stylization demo based on "A Learned Representation For Artistic Style"
Breaking Changes to the API
To help you upgrade your existing TensorFlow Python code to match the API changes below, we have prepared a conversion script.
- TensorFlow/models have been moved to a separate github repository.
- Division and modulus operators (/, //, %) now match Python (flooring)
semantics. This applies totf.div
andtf.mod
as well. To obtain forced
integer truncation based behaviors you can usetf.truncatediv
andtf.truncatemod
. tf.divide()
is now the recommended division function.tf.div()
will
remain, but its semantics do not respond to Python 3 orfrom future
mechanisms.- tf.reverse() now takes indices of axes to be reversed. E.g.
tf.reverse(a, [True, False, True])
must now be written as
tf.reverse(a, [0, 2])
.tf.reverse_v2()
will remain until 1.0 final. tf.mul
,tf.sub
andtf.neg
are deprecated in favor oftf.multiply
,
tf.subtract
andtf.negative
.tf.pack
andtf.unpack
are deprecated in favor oftf.stack
and
tf.unstack
.TensorArray.pack
andTensorArray.unpack
are getting deprecated in favor of
TensorArray.stack
andTensorArray.unstack
.- The following Python functions have had their arguments changed to use
axis
when referring to specific dimensions. We have kept the old keyword arguments
for compatibility currently, but we will be removing them well before the
final 1.0.tf.argmax
:dimension
becomesaxis
tf.argmin
:dimension
becomesaxis
tf.count_nonzero
:reduction_indices
becomesaxis
tf.expand_dims
:dim
becomesaxis
tf.reduce_all
:reduction_indices
becomesaxis
tf.reduce_any
:reduction_indices
becomesaxis
tf.reduce_join
:reduction_indices
becomesaxis
tf.reduce_logsumexp
:reduction_indices
becomesaxis
tf.reduce_max
:reduction_indices
becomesaxis
tf.reduce_mean
:reduction_indices
becomesaxis
tf.reduce_min
:reduction_indices
becomesaxis
tf.reduce_prod
:reduction_indices
becomesaxis
tf.reduce_sum
:reduction_indices
becomesaxis
tf.reverse_sequence
:batch_dim
becomesbatch_axis
,seq_dim
becomesseq_axis
tf.sparse_concat
:concat_dim
becomesaxis
tf.sparse_reduce_sum
:reduction_axes
becomesaxis
tf.sparse_reduce_sum_sparse
:reduction_axes
becomesaxis
tf.sparse_split
:split_dim
becomesaxis
tf.listdiff
has been renamed totf.setdiff1d
to match NumPy naming.tf.inv
has been renamed to betf.reciprocal
(component-wise reciprocal)
to avoid confusion withnp.inv
which is matrix inversion- tf.round now uses banker's rounding (round to even) semantics to match NumPy.
tf.split
now takes arguments in a reversed order and with different
keywords. In particular, we now match NumPy order as
tf.split(value, num_or_size_splits, axis)
.tf.sparse_split
now takes arguments in reversed order and with different
keywords. In particular we now match NumPy order as
tf.sparse_split(sp_input, num_split, axis)
. NOTE: we have temporarily
madetf.sparse_split
require keyword arguments.tf.concat
now takes arguments in reversed order and with different keywords. In particular we now match NumPy order astf.concat(values, axis, name)
.tf.image.decode_jpeg
by default uses the faster DCT method, sacrificing
a little fidelity for improved speed. One can revert to the old
behavior by specifying the attributedct_method='INTEGER_ACCURATE'
.tf.complex_abs
has been removed from the Python interface.tf.abs
supports complex tensors and should be used instead.- Template.
var_scope
property renamed to.variable_scope
- SyncReplicasOptimizer is removed and SyncReplicasOptimizerV2 renamed to SyncReplicasOptimizer.
tf.zeros_initializer()
andtf.ones_initializer()
now return a callable
that must be called with initializer arguments, in your code replace
tf.zeros_initializer
withtf.zeros_initializer()
.SparseTensor.shape
has been renamed toSparseTensor.dense_shape
. Same for
SparseTensorValue.shape
.- Replace tf.scalar_summary, tf.histogram_summary, tf.audio_summary, tf.image_summary with tf.summary.scalar, tf.summary.histogram, tf.summary.audio, tf.summary.image, respectively. The new summary ops take name rather than tag as their first argument, meaning summary ops now respect TensorFlow name scopes.
- Replace tf.train.SummaryWriter and tf.train.SummaryWriterCache with tf.summary.FileWriter and tf.summary.FileWriterCache.
- Removes RegisterShape from public API. Use C++ shape function registration
instead. - Deprecated
_ref
dtypes from the python API. - In the C++ API (in tensorflow/cc), Input, Output, etc. have moved
from the tensorflow::ops namespace to tensorflow. - Change arg order for
{softmax,sparse_softmax,sigmoid}_cross_entropy_with_logits
to be (labels, predictions), and force use of named args. - tf.nn.rnn_cell.* and most functions in tf.nn.rnn.* (with the exception of dynamic_rnn and raw_rnn) are temporarily in tf.contrib.rnn. They will be moved back into core for TF 1.1.
Bug Fixes and Other Changes
- Numerous C++ API updates.
- New op:
parallel_stack
. - Introducing common tf io compression options constants for
RecordReader/RecordWriter. - Add
sparse_column_with_vocabulary_file
, to specify a feature column that
transform string features to IDs, where the mapping is defined by a vocabulary
file. - Added
index_to_string_table
which returns a lookup table that maps indices to
strings. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Add a
ParallelForWithWorkerId
function. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Support restore session from checkpoint files in v2 in
contrib/session_bundle
. - Added a tf.contrib.image.rotate function for arbitrary angles.
- Added
tf.contrib.framework.filter_variables
as a convenience function to
filter lists of variables based on regular expressions. make_template()
takes an optionalcustom_getter_ param
.- Added comment about how existing directories are handled by
recursive_create_dir
. - Added an op for QR factorizations.
- Divides and mods in Python API now use flooring (Python) semantics.
- Android: pre-built libs are now built nightly.
- Android: cmake/gradle build for TensorFlow Inference library under
contrib/android/cmake
- Android: Much more robust Session initialization code.
- Android: TF stats now exposed directly in demo and log when debug mode is
active - Android: new/better README.md documentation
- saved_model is available as
tf.saved_model
. - Empty op is now stateful.
- Improve speed of scatter_update on the cpu for ASSIGN operations.
- Change
reduce_join
to treatreduction_indices
in the same way as otherreduce_
ops. - Move
TensorForestEstimator
tocontrib/tensor_forest
. - Enable compiler optimizations by default and allow configuration in configure.
tf.divide
now honors the name field.- Make metrics weight broadcasting more strict.
- Add new queue-like
StagingArea
and new ops:stage
andunstage
. - Enable inplace update ops for strings on CPU. Speed up string concat.
Thanks to our Contributors
This release contains contributions from many people at Google, as well as:
Aaron Hu, Abhishek Aggarwal, Adam Michael, Adriano Carmezim, @AfirSraftGarrier,
Alexander Novikov, Alexander Rosenberg Johansen, Andrew Gibiansky, Andrew Hundt,
Anish Shah, Anton Loss, @b0noI, @BoyuanJiang, Carl Thomé, Chad Kennedy, Comic
Chang, Connor Braa, Daniel N. Lang, Daniel Trebbien,
@danielgordon10, Darcy Liu, Darren Garvey, Dmitri Lapin, Eron Wright, Evan
Cofer, Fabrizio Milo, Finbarr Timbers, Franck Dernoncourt, Garrett Smith,
@guschmue, Hao Wei, Henrik Holst, Huazuo Gao, @ian, @issac, Jacob Israel,
Jangsoo Park, Jin Kim, Jingtian Peng, John Pope, Kye Bostelmann, Liangliang He,
Ling Zhang, Luheng He, Luke Iwanski, @lvli, Michael Basilyan, Mihir Patel,
Mikalai Drabovich, Morten Just, @newge, Nick Butlin, Nishant Shukla,
Pengfei Ni, Przemyslaw Tredak, @rasbt, @ronny, Rudolf Rosa, @RustingSword,
Sam Abrahams, Sam Putnam, @seongahjo, Shi Jiaxin, @skavulya, Steffen MüLler,
@TheUSER123, @tiriplicamihai, @vhasanov, Victor Costan, Vit Stepanovs,
Wangda Tan, Wenjian Huang, Xingdong Zuo, Yaroslav Bulatov, Yota Toyama,
Yuan (Terry) Tang, Yuxin Wu
We are also grateful to all who filed issues or helped resolve them, asked and
answered questions, and were part of inspiring discussions.
TensorFlow 1.0.0-rc2
Major Features and Improvements
- XLA (experimental): initial release of XLA, a domain-specific compiler for TensorFlow graphs, that targets CPUs and GPUs.
- TensorFlow Debugger (tfdbg): command-line interface and API.
- New python 3 docker images added.
- Made pip packages pypi compliant. TensorFlow can now be installed by
pip install tensorflow
command. - Several python API calls have been changed to resemble NumPy more closely.
- New (experimental) Java API.
- Android: new person detection + tracking demo implementing "Scalable Object Detection using Deep Neural Networks" (with additional YOLO object detector support)
- Android: new camera-based image stylization demo based on "A Learned Representation For Artistic Style"
Breaking Changes to the API
To help you upgrade your existing TensorFlow Python code to match the API changes below, we have prepared a conversion script.
- TensorFlow/models have been moved to a separate github repository.
- Division and modulus operators (/, //, %) now match Python (flooring)
semantics. This applies totf.div
andtf.mod
as well. To obtain forced
integer truncation based behaviors you can usetf.truncatediv
andtf.truncatemod
. tf.divide()
is now the recommended division function.tf.div()
will
remain, but its semantics do not respond to Python 3 orfrom future
mechanisms.- tf.reverse() now takes indices of axes to be reversed. E.g.
tf.reverse(a, [True, False, True])
must now be written as
tf.reverse(a, [0, 2])
.tf.reverse_v2()
will remain until 1.0 final. tf.mul
,tf.sub
andtf.neg
are deprecated in favor oftf.multiply
,
tf.subtract
andtf.negative
.tf.pack
andtf.unpack
are deprecated in favor oftf.stack
and
tf.unstack
.TensorArray.pack
andTensorArray.unpack
are getting deprecated in favor of
TensorArray.stack
andTensorArray.unstack
.- The following Python functions have had their arguments changed to use
axis
when referring to specific dimensions. We have kept the old keyword arguments
for compatibility currently, but we will be removing them well before the
final 1.0.tf.argmax
:dimension
becomesaxis
tf.argmin
:dimension
becomesaxis
tf.count_nonzero
:reduction_indices
becomesaxis
tf.expand_dims
:dim
becomesaxis
tf.reduce_all
:reduction_indices
becomesaxis
tf.reduce_any
:reduction_indices
becomesaxis
tf.reduce_join
:reduction_indices
becomesaxis
tf.reduce_logsumexp
:reduction_indices
becomesaxis
tf.reduce_max
:reduction_indices
becomesaxis
tf.reduce_mean
:reduction_indices
becomesaxis
tf.reduce_min
:reduction_indices
becomesaxis
tf.reduce_prod
:reduction_indices
becomesaxis
tf.reduce_sum
:reduction_indices
becomesaxis
tf.reverse_sequence
:batch_dim
becomesbatch_axis
,seq_dim
becomesseq_axis
tf.sparse_concat
:concat_dim
becomesaxis
tf.sparse_reduce_sum
:reduction_axes
becomesaxis
tf.sparse_reduce_sum_sparse
:reduction_axes
becomesaxis
tf.sparse_split
:split_dim
becomesaxis
tf.listdiff
has been renamed totf.setdiff1d
to match NumPy naming.tf.inv
has been renamed to betf.reciprocal
(component-wise reciprocal)
to avoid confusion withnp.inv
which is matrix inversion- tf.round now uses banker's rounding (round to even) semantics to match NumPy.
tf.split
now takes arguments in a reversed order and with different
keywords. In particular, we now match NumPy order as
tf.split(value, num_or_size_splits, axis)
.tf.sparse_split
now takes arguments in reversed order and with different
keywords. In particular we now match NumPy order as
tf.sparse_split(sp_input, num_split, axis)
. NOTE: we have temporarily
madetf.sparse_split
require keyword arguments.tf.concat
now takes arguments in reversed order and with different keywords. In particular we now match NumPy order astf.concat(values, axis, name)
.tf.image.decode_jpeg
by default uses the faster DCT method, sacrificing
a little fidelity for improved speed. One can revert to the old
behavior by specifying the attributedct_method='INTEGER_ACCURATE'
.tf.complex_abs
has been removed from the Python interface.tf.abs
supports complex tensors and should be used instead.- Template.
var_scope
property renamed to.variable_scope
- SyncReplicasOptimizer is removed and SyncReplicasOptimizerV2 renamed to SyncReplicasOptimizer.
tf.zeros_initializer()
andtf.ones_initializer()
now return a callable
that must be called with initializer arguments, in your code replace
tf.zeros_initializer
withtf.zeros_initializer()
.SparseTensor.shape
has been renamed toSparseTensor.dense_shape
. Same for
SparseTensorValue.shape
.- Replace tf.scalar_summary, tf.histogram_summary, tf.audio_summary, tf.image_summary with tf.summary.scalar, tf.summary.histogram, tf.summary.audio, tf.summary.image, respectively. The new summary ops take name rather than tag as their first argument, meaning summary ops now respect TensorFlow name scopes.
- Replace tf.train.SummaryWriter and tf.train.SummaryWriterCache with tf.summary.FileWriter and tf.summary.FileWriterCache.
- Removes RegisterShape from public API. Use C++ shape function registration
instead. - Deprecated
_ref
dtypes from the python API. - In the C++ API (in tensorflow/cc), Input, Output, etc. have moved
from the tensorflow::ops namespace to tensorflow. - Change arg order for
{softmax,sparse_softmax,sigmoid}_cross_entropy_with_logits
to be (labels, predictions), and force use of named args.
Bug Fixes and Other Changes
- New op:
parallel_stack
. - Introducing common tf io compression options constants for
RecordReader/RecordWriter. - Add
sparse_column_with_vocabulary_file
, to specify a feature column that
transform string features to IDs, where the mapping is defined by a vocabulary
file. - Added
index_to_string_table
which returns a lookup table that maps indices to
strings. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Add a
ParallelForWithWorkerId
function. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Support restore session from checkpoint files in v2 in
contrib/session_bundle
. - Added a tf.contrib.image.rotate function for arbitrary angles.
- Added
tf.contrib.framework.filter_variables
as a convenience function to
filter lists of variables based on regular expressions. make_template()
takes an optionalcustom_getter_ param
.- Added comment about how existing directories are handled by
recursive_create_dir
. - Added an op for QR factorizations.
- Divides and mods in Python API now use flooring (Python) semantics.
- Android: pre-built libs are now built nightly.
- Android: cmake/gradle build for TensorFlow Inference library under
contrib/android/cmake
- Android: Much more robust Session initialization code.
- Android: TF stats now exposed directly in demo and log when debug mode is
active - Android: new/better README.md documentation
- saved_model is available as
tf.saved_model
. - Empty op is now stateful.
- Improve speed of scatter_update on the cpu for ASSIGN operations.
- Change
reduce_join
to treatreduction_indices
in the same way as otherreduce_
ops. - Move
TensorForestEstimator
tocontrib/tensor_forest
. - Enable compiler optimizations by default and allow configuration in configure.
tf.divide
now honors the name field.- Make metrics weight broadcasting more strict.
- Add new queue-like
StagingArea
and new ops:stage
andunstage
.
Thanks to our Contributors
This release contains contributions from many people at Google, as well as:
Aaron Hu, Abhishek Aggarwal, Adam Michael, Adriano Carmezim, @AfirSraftGarrier,
Alexander Novikov, Alexander Rosenberg Johansen, Andrew Gibiansky, Andrew Hundt,
Anish Shah, Anton Loss, @b0noI, @BoyuanJiang, Carl Thomé, Chad Kennedy, Comic
Chang, Connor Braa, Daniel N. Lang, Daniel Trebbien,
@danielgordon10, Darcy Liu, Darren Garvey, Dmitri Lapin, Eron Wright, Evan
Cofer, Fabrizio Milo, Finbarr Timbers, Franck Dernoncourt, Garrett Smith,
@guschmue, Hao Wei, Henrik Holst, Huazuo Gao, @ian, @issac, Jacob Israel,
Jangsoo Park, Jin Kim, Jingtian Peng, John Pope, Kye Bostelmann, Liangliang He,
Ling Zhang, Luheng He, Luke Iwanski, @lvli, Michael Basilyan, Mihir Patel,
Mikalai Drabovich, Morten Just, @newge, Nick Butlin, Nishant Shukla,
Pengfei Ni, Przemyslaw Tredak, @rasbt, @ronny, Rudolf Rosa, @RustingSword,
Sam Abrahams, Sam Putnam, @seongahjo, Shi Jiaxin, @skavulya, Steffen MüLler,
@TheUSER123, @tiriplicamihai, @vhasanov, Victor Costan, Vit Stepanovs,
Wangda Tan, Wenjian Huang, Xingdong Zuo, Yaroslav Bulatov, Yota Toyama,
Yuan (Terry) Tang, Yuxin Wu
We are also grateful to all who filed issues or helped resolve them, asked and
answered questions, and were part of inspiring discussions.
TensorFlow 1.0.0-rc1
Major Features and Improvements
- XLA (experimental): initial release of XLA, a domain-specific compiler for TensorFlow graphs, that targets CPUs and GPUs.
- TensorFlow Debugger (tfdbg): command-line interface and API.
- New python 3 docker images added.
- Made pip packages pypi compliant. TensorFlow can now be installed by
pip install tensorflow
command. - Several python API calls have been changed to resemble NumPy more closely.
- New (experimental) Java API.
- Android: new person detection + tracking demo implementing "Scalable Object Detection using Deep Neural Networks" (with additional YOLO object detector support)
- Android: new camera-based image stylization demo based on "A Learned Representation For Artistic Style"
Breaking Changes to the API
To help you upgrade your existing TensorFlow Python code to match the API changes below, we have prepared a conversion script.
- TensorFlow/models have been moved to a separate github repository.
- Division and modulus operators (/, //, %) now match Python (flooring)
semantics. This applies totf.div
andtf.mod
as well. To obtain forced
integer truncation based behaviors you can usetf.truncatediv
andtf.truncatemod
. tf.divide()
is now the recommended division function.tf.div()
will
remain, but its semantics do not respond to Python 3 orfrom future
mechanisms.- tf.reverse() now takes indices of axes to be reversed. E.g.
tf.reverse(a, [True, False, True])
must now be written as
tf.reverse(a, [0, 2])
.tf.reverse_v2()
will remain until 1.0 final. tf.mul
,tf.sub
andtf.neg
are deprecated in favor oftf.multiply
,
tf.subtract
andtf.negative
.tf.pack
andtf.unpack
are deprecated in favor oftf.stack
and
tf.unstack
.TensorArray.pack
andTensorArray.unpack
are getting deprecated in favor of
TensorArray.stack
andTensorArray.unstack
.- The following Python functions have had their arguments changed to use
axis
when referring to specific dimensions. We have kept the old keyword arguments
for compatibility currently, but we will be removing them well before the
final 1.0.tf.argmax
:dimension
becomesaxis
tf.argmin
:dimension
becomesaxis
tf.count_nonzero
:reduction_indices
becomesaxis
tf.expand_dims
:dim
becomesaxis
tf.reduce_all
:reduction_indices
becomesaxis
tf.reduce_any
:reduction_indices
becomesaxis
tf.reduce_join
:reduction_indices
becomesaxis
tf.reduce_logsumexp
:reduction_indices
becomesaxis
tf.reduce_max
:reduction_indices
becomesaxis
tf.reduce_mean
:reduction_indices
becomesaxis
tf.reduce_min
:reduction_indices
becomesaxis
tf.reduce_prod
:reduction_indices
becomesaxis
tf.reduce_sum
:reduction_indices
becomesaxis
tf.reverse_sequence
:batch_dim
becomesbatch_axis
,seq_dim
becomesseq_axis
tf.sparse_concat
:concat_dim
becomesaxis
tf.sparse_reduce_sum
:reduction_axes
becomesaxis
tf.sparse_reduce_sum_sparse
:reduction_axes
becomesaxis
tf.sparse_split
:split_dim
becomesaxis
tf.listdiff
has been renamed totf.setdiff1d
to match NumPy naming.tf.inv
has been renamed to betf.reciprocal
(component-wise reciprocal)
to avoid confusion withnp.inv
which is matrix inversion- tf.round now uses banker's rounding (round to even) semantics to match NumPy.
tf.split
now takes arguments in a reversed order and with different
keywords. In particular, we now match NumPy order as
tf.split(value, num_or_size_splits, axis)
.tf.sparse_split
now takes arguments in reversed order and with different
keywords. In particular we now match NumPy order as
tf.sparse_split(sp_input, num_split, axis)
. NOTE: we have temporarily
madetf.sparse_split
require keyword arguments.tf.concat
now takes arguments in reversed order and with different keywords. In particular we now match NumPy order astf.concat(values, axis, name)
.tf.image.decode_jpeg
by default uses the faster DCT method, sacrificing
a little fidelity for improved speed. One can revert to the old
behavior by specifying the attributedct_method='INTEGER_ACCURATE'
.tf.complex_abs
has been removed from the Python interface.tf.abs
supports complex tensors and should be used instead.- Template.
var_scope
property renamed to.variable_scope
- SyncReplicasOptimizer is removed and SyncReplicasOptimizerV2 renamed to SyncReplicasOptimizer.
tf.zeros_initializer()
andtf.ones_initializer()
now return a callable
that must be called with initializer arguments, in your code replace
tf.zeros_initializer
withtf.zeros_initializer()
.SparseTensor.shape
has been renamed toSparseTensor.dense_shape
. Same for
SparseTensorValue.shape
.- Replace tf.scalar_summary, tf.histogram_summary, tf.audio_summary, tf.image_summary with tf.summary.scalar, tf.summary.histogram, tf.summary.audio, tf.summary.image, respectively. The new summary ops take name rather than tag as their first argument, meaning summary ops now respect TensorFlow name scopes.
- Replace tf.train.SummaryWriter and tf.train.SummaryWriterCache with tf.summary.FileWriter and tf.summary.FileWriterCache.
- Removes RegisterShape from public API. Use C++ shape function registration
instead. - Deprecated
_ref
dtypes from the python API. - In the C++ API (in tensorflow/cc), Input, Output, etc. have moved
from the tensorflow::ops namespace to tensorflow. - Change arg order for
{softmax,sparse_softmax,sigmoid}_cross_entropy_with_logits
to be (labels, predictions), and force use of named args.
Bug Fixes and Other Changes
- New op:
parallel_stack
. - Introducing common tf io compression options constants for
RecordReader/RecordWriter. - Add
sparse_column_with_vocabulary_file
, to specify a feature column that
transform string features to IDs, where the mapping is defined by a vocabulary
file. - Added
index_to_string_table
which returns a lookup table that maps indices to
strings. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Add a
ParallelForWithWorkerId
function. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Support restore session from checkpoint files in v2 in
contrib/session_bundle
. - Added a tf.contrib.image.rotate function for arbitrary angles.
- Added
tf.contrib.framework.filter_variables
as a convenience function to
filter lists of variables based on regular expressions. make_template()
takes an optionalcustom_getter_ param
.- Added comment about how existing directories are handled by
recursive_create_dir
. - Added an op for QR factorizations.
- Divides and mods in Python API now use flooring (Python) semantics.
- Android: pre-built libs are now built nightly.
- Android: cmake/gradle build for TensorFlow Inference library under
contrib/android/cmake
- Android: Much more robust Session initialization code.
- Android: TF stats now exposed directly in demo and log when debug mode is
active - Android: new/better README.md documentation
- saved_model is available as
tf.saved_model
. - Empty op is now stateful.
- Improve speed of scatter_update on the cpu for ASSIGN operations.
- Change
reduce_join
to treatreduction_indices
in the same way as otherreduce_
ops. - Move
TensorForestEstimator
tocontrib/tensor_forest
. - Enable compiler optimizations by default and allow configuration in configure.
tf.divide
now honors the name field.- Make metrics weight broadcasting more strict.
- Add new queue-like
StagingArea
and new ops:stage
andunstage
.
Thanks to our Contributors
This release contains contributions from many people at Google, as well as:
Aaron Hu, Abhishek Aggarwal, Adam Michael, Adriano Carmezim, @AfirSraftGarrier,
Alexander Novikov, Alexander Rosenberg Johansen, Andrew Gibiansky, Andrew Hundt,
Anish Shah, Anton Loss, @b0noI, @BoyuanJiang, Carl Thomé, Chad Kennedy, Comic
Chang, Connor Braa, Daniel N. Lang, Daniel Trebbien,
@danielgordon10, Darcy Liu, Darren Garvey, Dmitri Lapin, Eron Wright, Evan
Cofer, Fabrizio Milo, Finbarr Timbers, Franck Dernoncourt, Garrett Smith,
@guschmue, Hao Wei, Henrik Holst, Huazuo Gao, @ian, @issac, Jacob Israel,
Jangsoo Park, Jin Kim, Jingtian Peng, John Pope, Kye Bostelmann, Liangliang He,
Ling Zhang, Luheng He, Luke Iwanski, @lvli, Michael Basilyan, Mihir Patel,
Mikalai Drabovich, Morten Just, @newge, Nick Butlin, Nishant Shukla,
Pengfei Ni, Przemyslaw Tredak, @rasbt, @ronny, Rudolf Rosa, @RustingSword,
Sam Abrahams, Sam Putnam, @seongahjo, Shi Jiaxin, @skavulya, Steffen MüLler,
@TheUSER123, @tiriplicamihai, @vhasanov, Victor Costan, Vit Stepanovs,
Wangda Tan, Wenjian Huang, Xingdong Zuo, Yaroslav Bulatov, Yota Toyama,
Yuan (Terry) Tang, Yuxin Wu
We are also grateful to all who filed issues or helped resolve them, asked and
answered questions, and were part of inspiring discussions.
TensorFlow 1.0.0-rc0
Major Features and Improvements
- XLA (experimental): initial release of XLA, a domain-specific compiler for TensorFlow graphs, that targets CPUs and GPUs.
- TensorFlow Debugger (tfdbg): command-line interface and API.
- New python 3 docker images added.
- Made pip packages pypi compliant. TensorFlow can now be installed by
pip install tensorflow
command. - Several python API calls have been changed to resemble NumPy more closely.
- New (experimental) Java API.
- Android: new person detection + tracking demo implementing "Scalable Object Detection using Deep Neural Networks" (with additional YOLO object detector support)
- Android: new camera-based image stylization demo based on "A Learned Representation For Artistic Style"
Breaking Changes to the API
To help you upgrade your existing TensorFlow Python code to match the API changes below, we have prepared a conversion script.
- TensorFlow/models have been moved to a separate github repository.
- Division and modulus operators (/, //, %) now match Python (flooring)
semantics. This applies totf.div
andtf.mod
as well. To obtain forced
integer truncation based behaviors you can usetf.truncatediv
andtf.truncatemod
. tf.divide()
is now the recommended division function.tf.div()
will
remain, but its semantics do not respond to Python 3 orfrom future
mechanisms.- tf.reverse() now takes indices of axes to be reversed. E.g.
tf.reverse(a, [True, False, True])
must now be written as
tf.reverse(a, [0, 2])
.tf.reverse_v2()
will remain until 1.0 final. tf.mul
,tf.sub
andtf.neg
are deprecated in favor oftf.multiply
,
tf.subtract
andtf.negative
.tf.pack
andtf.unpack
are deprecated in favor oftf.stack
and
tf.unstack
.TensorArray.pack
andTensorArray.unpack
are getting deprecated in favor of
TensorArray.stack
andTensorArray.unstack
.- The following Python functions have had their arguments changed to use
axis
when referring to specific dimensions. We have kept the old keyword arguments
for compatibility currently, but we will be removing them well before the
final 1.0.tf.argmax
:dimension
becomesaxis
tf.argmin
:dimension
becomesaxis
tf.count_nonzero
:reduction_indices
becomesaxis
tf.expand_dims
:dim
becomesaxis
tf.reduce_all
:reduction_indices
becomesaxis
tf.reduce_any
:reduction_indices
becomesaxis
tf.reduce_join
:reduction_indices
becomesaxis
tf.reduce_logsumexp
:reduction_indices
becomesaxis
tf.reduce_max
:reduction_indices
becomesaxis
tf.reduce_mean
:reduction_indices
becomesaxis
tf.reduce_min
:reduction_indices
becomesaxis
tf.reduce_prod
:reduction_indices
becomesaxis
tf.reduce_sum
:reduction_indices
becomesaxis
tf.reverse_sequence
:batch_dim
becomesbatch_axis
,seq_dim
becomesseq_axis
tf.sparse_concat
:concat_dim
becomesaxis
tf.sparse_reduce_sum
:reduction_axes
becomesaxis
tf.sparse_reduce_sum_sparse
:reduction_axes
becomesaxis
tf.sparse_split
:split_dim
becomesaxis
tf.listdiff
has been renamed totf.setdiff1d
to match NumPy naming.tf.inv
has been renamed to betf.reciprocal
(component-wise reciprocal)
to avoid confusion withnp.inv
which is matrix inversion- tf.round now uses banker's rounding (round to even) semantics to match NumPy.
tf.split
now takes arguments in a reversed order and with different
keywords. In particular, we now match NumPy order as
tf.split(value, num_or_size_splits, axis)
.tf.sparse_split
now takes arguments in reversed order and with different
keywords. In particular we now match NumPy order as
tf.sparse_split(sp_input, num_split, axis)
. NOTE: we have temporarily
madetf.sparse_split
require keyword arguments.tf.concat
now takes arguments in reversed order and with different keywords. In particular we now match NumPy order astf.concat(values, axis, name)
.tf.image.decode_jpeg
by default uses the faster DCT method, sacrificing
a little fidelity for improved speed. One can revert to the old
behavior by specifying the attributedct_method='INTEGER_ACCURATE'
.tf.complex_abs
has been removed from the Python interface.tf.abs
supports complex tensors and should be used instead.- Template.
var_scope
property renamed to.variable_scope
- SyncReplicasOptimizer is removed and SyncReplicasOptimizerV2 renamed to SyncReplicasOptimizer.
tf.zeros_initializer()
andtf.ones_initializer()
now return a callable
that must be called with initializer arguments, in your code replace
tf.zeros_initializer
withtf.zeros_initializer()
.SparseTensor.shape
has been renamed toSparseTensor.dense_shape
. Same for
SparseTensorValue.shape
.- Replace tf.scalar_summary, tf.histogram_summary, tf.audio_summary, tf.image_summary with tf.summary.scalar, tf.summary.histogram, tf.summary.audio, tf.summary.image, respectively. The new summary ops take name rather than tag as their first argument, meaning summary ops now respect TensorFlow name scopes.
- Replace tf.train.SummaryWriter and tf.train.SummaryWriterCache with tf.summary.FileWriter and tf.summary.FileWriterCache.
- Removes RegisterShape from public API. Use C++ shape function registration
instead. - Deprecated
_ref
dtypes from the python API. - In the C++ API (in tensorflow/cc), Input, Output, etc. have moved
from the tensorflow::ops namespace to tensorflow. - Change arg order for
{softmax,sparse_softmax,sigmoid}_cross_entropy_with_logits
to be (labels, predictions), and force use of named args.
Bug Fixes and Other Changes
- New op:
parallel_stack
. - Introducing common tf io compression options constants for
RecordReader/RecordWriter. - Add
sparse_column_with_vocabulary_file
, to specify a feature column that
transform string features to IDs, where the mapping is defined by a vocabulary
file. - Added
index_to_string_table
which returns a lookup table that maps indices to
strings. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Add a
ParallelForWithWorkerId
function. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Support restore session from checkpoint files in v2 in
contrib/session_bundle
. - Added a tf.contrib.image.rotate function for arbitrary angles.
- Added
tf.contrib.framework.filter_variables
as a convenience function to
filter lists of variables based on regular expressions. make_template()
takes an optionalcustom_getter_ param
.- Added comment about how existing directories are handled by
recursive_create_dir
. - Added an op for QR factorizations.
- Divides and mods in Python API now use flooring (Python) semantics.
- Android: pre-built libs are now built nightly.
- Android: cmake/gradle build for TensorFlow Inference library under
contrib/android/cmake
- Android: Much more robust Session initialization code.
- Android: TF stats now exposed directly in demo and log when debug mode is
active - Android: new/better README.md documentation
- saved_model is available as
tf.saved_model
. - Empty op is now stateful.
- Improve speed of scatter_update on the cpu for ASSIGN operations.
- Change
reduce_join
to treatreduction_indices
in the same way as otherreduce_
ops. - Move
TensorForestEstimator
tocontrib/tensor_forest
. - Enable compiler optimizations by default and allow configuration in configure.
tf.divide
now honors the name field.- Make metrics weight broadcasting more strict.
- Add new queue-like
StagingArea
and new ops:stage
andunstage
.
Thanks to our Contributors
This release contains contributions from many people at Google, as well as:
Aaron Hu, Abhishek Aggarwal, Adam Michael, Adriano Carmezim, @AfirSraftGarrier,
Alexander Novikov, Alexander Rosenberg Johansen, Andrew Gibiansky, Andrew Hundt,
Anish Shah, Anton Loss, @b0noI, @BoyuanJiang, Carl Thomé, Chad Kennedy, Comic
Chang, Connor Braa, Daniel N. Lang, Daniel Trebbien,
@danielgordon10, Darcy Liu, Darren Garvey, Dmitri Lapin, Eron Wright, Evan
Cofer, Fabrizio Milo, Finbarr Timbers, Franck Dernoncourt, Garrett Smith,
@guschmue, Hao Wei, Henrik Holst, Huazuo Gao, @ian, @issac, Jacob Israel,
Jangsoo Park, Jin Kim, Jingtian Peng, John Pope, Kye Bostelmann, Liangliang He,
Ling Zhang, Luheng He, Luke Iwanski, @lvli, Michael Basilyan, Mihir Patel,
Mikalai Drabovich, Morten Just, @newge, Nick Butlin, Nishant Shukla,
Pengfei Ni, Przemyslaw Tredak, @rasbt, @ronny, Rudolf Rosa, @RustingSword,
Sam Abrahams, Sam Putnam, @seongahjo, Shi Jiaxin, @skavulya, Steffen MüLler,
@TheUSER123, @tiriplicamihai, @vhasanov, Victor Costan, Vit Stepanovs,
Wangda Tan, Wenjian Huang, Xingdong Zuo, Yaroslav Bulatov, Yota Toyama,
Yuan (Terry) Tang, Yuxin Wu
We are also grateful to all who filed issues or helped resolve them, asked and
answered questions, and were part of inspiring discussions.
TensorFlow 1.0.0-alpha
Major Features and Improvements
- TensorFlow Debugger (tfdbg): command-line interface and API.
- New python 3 docker images added.
- Made pip packages pypi compliant. TensorFlow can now be installed by
pip install tensorflow
command. - Android: person detection + tracking demo implementing Scalable Object
Detection using Deep Neural Networks. - Android: pre-built libs are now built nightly.
- New (experimental) Java API.
Breaking Changes to the API
- TensorFlow/models have been moved to a separate github repository.
- Division and modulus operators (/, //, %) now match Python (flooring)
semantics. This applies totf.div
andtf.mod
as well. To obtain forced
integer truncation based behaviors you can usetf.truncatediv
andtf.truncatemod
. tf.divide()
is now the recommended division function.tf.div()
will
remain, but its semantics do not respond to Python 3 orfrom future
mechanisms.- tf.reverse() now takes indices of axes to be reversed. E.g.
tf.reverse(a, [True, False, True])
must now be written as
tf.reverse(a, [0, 2])
.tf.reverse_v2()
will remain until 1.0 final. tf.mul
,tf.sub
andtf.neg
are deprecated in favor oftf.multiply
,
tf.subtract
andtf.negative
.tf.pack
andtf.unpack
are deprecated in favor oftf.stack
and
tf.unstack
.TensorArray.pack
andTensorArray.unpack
are getting deprecated in favor of
TensorArray.stack
andTensorArray.unstack
.- The following Python functions have had their arguments changed to use
axis
when referring to specific dimensions. We have kept the old keyword arguments
for compatibility currently, but we will be removing them well before the
final 1.0.tf.argmax
:dimension
becomesaxis
tf.argmin
:dimension
becomesaxis
tf.count_nonzero
:reduction_indices
becomesaxis
tf.expand_dims
:dim
becomesaxis
tf.reduce_all
:reduction_indices
becomesaxis
tf.reduce_any
:reduction_indices
becomesaxis
tf.reduce_join
:reduction_indices
becomesaxis
tf.reduce_logsumexp
:reduction_indices
becomesaxis
tf.reduce_max
:reduction_indices
becomesaxis
tf.reduce_mean
:reduction_indices
becomesaxis
tf.reduce_min
:reduction_indices
becomesaxis
tf.reduce_prod
:reduction_indices
becomesaxis
tf.reduce_sum
:reduction_indices
becomesaxis
tf.reverse_sequence
:batch_dim
becomesbatch_axis
,seq_dim
becomesseq_axis
tf.sparse_concat
:concat_dim
becomesaxis
tf.sparse_reduce_sum
:reduction_axes
becomesaxis
tf.sparse_reduce_sum_sparse
:reduction_axes
becomesaxis
tf.sparse_split
:split_dim
becomesaxis
tf.listdiff
has been renamed totf.setdiff1d
to match NumPy naming.tf.inv
has been renamed to betf.reciprocal
(component-wise reciprocal)
to avoid confusion withnp.inv
which is matrix inversion- tf.round now uses banker's rounding (round to even) semantics to match NumPy.
tf.split
now takes arguments in a reversed order and with different
keywords. In particular, we now match NumPy order as
tf.split(value, num_or_size_splits, axis)
.tf.sparse_split
now takes arguments in reversed order and with different
keywords. In particular we now match NumPy order as
tf.sparse_split(sp_input, num_split, axis)
. NOTE: we have temporarily
madetf.sparse_split
require keyword arguments.- Deprecated
tf.concat
operator. Please switch to usetf.concat_v2
for now.
In the Beta release, we will updatetf.concat
to match argument order of
tf.concat_v2
. tf.image.decode_jpeg
by default uses the faster DCT method, sacrificing
a little fidelity for improved speed. One can revert to the old
behavior by specifying the attributedct_method='INTEGER_ACCURATE'
.tf.complex_abs
has been removed from the Python interface.tf.abs
supports complex tensors and should be used instead.- Template.
var_scope
property renamed to.variable_scope
- SyncReplicasOptimizer is removed and SyncReplicasOptimizerV2 renamed to SyncReplicasOptimizer.
tf.zeros_initializer()
andtf.ones_initializer()
now return a callable
that must be called with initializer arguments, in your code replace
tf.zeros_initializer
withtf.zeros_initializer()
.SparseTensor.shape
has been renamed toSparseTensor.dense_shape
. Same for
SparseTensorValue.shape
.- Remove old tf summary ops, like
tf.scalar_summary
andtf.histogram_summary
.
Usetf.summary.scalar
andtf.summary.histogram
instead. - Remove tf.train.SummaryWriter and tf.train.SummaryWriterCache.
- Removes RegisterShape from public API. Use C++ shape function registration
instead. - Deprecated
_ref
dtypes from the python API.
Bug Fixes and Other Changes
- New op:
parallel_stack
. - Introducing common tf io compression options constants for
RecordReader/RecordWriter. - Add
sparse_column_with_vocabulary_file
, to specify a feature column that
transform string features to IDs, where the mapping is defined by a vocabulary
file. - Added
index_to_string_table
which returns a lookup table that maps indices to
strings. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Add a
ParallelForWithWorkerId
function. - Add
string_to_index_table
, which returns a lookup table that matches strings
to indices. - Support restore session from checkpoint files in v2 in
contrib/session_bundle
. - Added a tf.contrib.image.rotate function for arbitrary angles.
- Added
tf.contrib.framework.filter_variables
as a convenience function to
filter lists of variables based on regular expressions. - Remove old tf summary ops, like
tf.scalar_summary
andtf.histogram_summary
.
Usetf.summary.scalar
andtf.summary.histogram
instead. make_template()
takes an optionalcustom_getter_ param
.- Added comment about how existing directories are handled by
recursive_create_dir
. - Added an op for QR factorizations.
- Divides and mods in Python API now use flooring (Python) semantics.
- Android: cmake/gradle build for TensorFlow Inference library under
contrib/android/cmake
- Android: Much more robust Session initialization code.
- Android: TF stats now exposed directly in demo and log when debug mode is
active - Android: new/better README.md documentation
Thanks to our Contributors
This release contains contributions from many people at Google, as well as:
Aaron Hu, Abhishek Aggarwal, Adam Michael, Adriano Carmezim, @AfirSraftGarrier,
Alexander Novikov, Alexander Rosenberg Johansen, Andrew Gibiansky, Andrew Hundt,
Anish Shah, Anton Loss, @b0noI, @BoyuanJiang, Carl Thomé, Chad Kennedy, Comic
Chang, Connor Braa, Daniel N. Lang, Daniel Trebbien,
@danielgordon10, Darcy Liu, Darren Garvey, Dmitri Lapin, Eron Wright, Evan
Cofer, Fabrizio Milo, Finbarr Timbers, Franck Dernoncourt, Garrett Smith,
@guschmue, Hao Wei, Henrik Holst, Huazuo Gao, @ian, @issac, Jacob Israel,
Jangsoo Park, Jin Kim, Jingtian Peng, John Pope, Kye Bostelmann, Liangliang He,
Ling Zhang, Luheng He, Luke Iwanski, @lvli, Michael Basilyan, Mihir Patel,
Mikalai Drabovich, Morten Just, @newge, Nick Butlin, Nishant Shukla,
Pengfei Ni, Przemyslaw Tredak, @rasbt, @ronny, Rudolf Rosa, @RustingSword,
Sam Abrahams, Sam Putnam, @seongahjo, Shi Jiaxin, @skavulya, Steffen MüLler,
@TheUSER123, @tiriplicamihai, @vhasanov, Victor Costan, Vit Stepanovs,
Wangda Tan, Wenjian Huang, Xingdong Zuo, Yaroslav Bulatov, Yota Toyama,
Yuan (Terry) Tang, Yuxin Wu
We are also grateful to all who filed issues or helped resolve them, asked and
answered questions, and were part of inspiring discussions.
TensorFlow v0.12.1
Bug fixes and minor changes.
TensorFlow v0.12.0
Bug fixes and minor changes.
TensorFlow v0.12.0 RC1
Bug fixes and minor changes.