# Changes since last release ## Breaking changes to the API * `AdjustContrast` kernel deprecated, new kernel `AdjustContrastv2` takes and outputs float only. `adjust_contrast` now takes all data types. * `adjust_brightness`'s `delta` argument is now always assumed to be in `[0,1]` (as is the norm for images in floating point formats), independent of the data type of the input image. * The image processing ops do not take `min` and `max` inputs any more, casting safety is handled by `saturate_cast`, which makes sure over- and underflows are handled before casting to data types with smaller ranges. * For C++ API users: `IsLegacyScalar` and `IsLegacyVector` are now gone from `TensorShapeUtils` since TensorFlow is scalar strict within Google (for example, the shape argument to `tf.reshape` can't be a scalar anymore). The open source release was already scalar strict, so outside Google `IsScalar` and `IsVector` are exact replacements. * The following files are being removed from `tensorflow/core/public/`: * `env.h` -> `../platform/env.h` * `status.h` -> `../lib/core/status.h` * `tensor.h` -> `../framework/tensor.h` * `tensor_shape.h` -> `../framework/tensor_shape.h` * `partial_tensor_shape.h` -> `../framework/partial_tensor_shape.h` * `tensorflow_server.h` deleted * For C++ API users: `TensorShape::ShortDebugString` has been renamed to `DebugString`, and the previous `DebugString` behavior is gone (it was needlessly verbose and produced a confusing empty string for scalars). * `GraphOptions.skip_common_subexpression_elimination` has been removed. All graph optimizer options are now specified via `GraphOptions.OptimizerOptions`. * `ASSERT_OK` / `EXPECT_OK` macros conflicted with external projects, so they were renamed `TF_ASSERT_OK`, `TF_EXPECT_OK`. The existing macros are currently maintained for short-term compatibility but will be removed. * The non-public `nn.rnn` and the various `nn.seq2seq` methods now return just the final state instead of the list of all states. * `tf.image.random_crop(image, [height, width])` is now `tf.random_crop(image, [height, width, depth])`, and `tf.random_crop` works for any rank (not just 3-D images). The C++ `RandomCrop` op has been replaced with pure Python. * Renamed `tf.test.GetTempDir` and `tf.test.IsBuiltWithCuda` to `tf.test.get_temp_dir` and `tf.test.is_built_with_cuda` for PEP-8 compatibility. ## Bug fixes * The Python API will now properly set the `list` member of `AttrValue` in constructed `GraphDef` messages for empty lists. The serialization of some graphs will change, but the change is both forwards and backwards compatible. It will break tests that compare a generated `GraphDef` to a golden serialized `GraphDef`. # Release 0.6.0 ## Major Features and Improvements * Python 3.3+ support via changes to python codebase and ability to specify python version via ./configure. * Some improvements to GPU performance and memory usage: [convnet benchmarks](https://github.com/soumith/convnet-benchmarks/issues/66) roughly equivalent with native cudnn v2 performance. Improvements mostly due to moving to 32-bit indices, faster shuffling kernels. More improvements to come in later releases. ## Bug fixes * Lots of fixes to documentation and tutorials, many contributed by the public. * 271 closed issues on github issues. ## Backwards-incompatible changes * `tf.nn.fixed_unigram_candidate_sampler` changed its default 'distortion' attribute from 0.0 to 1.0. This was a bug in the original release that is now fixed. # Release 0.5.0 Initial release of TensorFlow.