-
Notifications
You must be signed in to change notification settings - Fork 4.3k
CNTK_2_0_RC_3_Release_Notes
This page has migrated to our new site. Please update any bookmarks.
With the Release Candidate 3 we ship the last preview before the Microsoft Cognitive Toolkit V2 final release.
- Several APIs that were previously deprecated, have now been removed. See the table listing removed API and their replacements at the end of these Release Notes.
- Support for static axes with unspecified dimensionality in input variable shapes. The actual dimensionality is determined when the first minibatch data is bound for computation by the Function.
- Support for free (dynamic) static axes in input variable shapes that infer the actual dimensionality value from bound data, and can change across different evaluations of the Function graph (Note: Currently some Functions like convolution and pooling do not support inputs with free static axes; this will be addressed soon).
- New
to_sequence
operator converting non-sequence data to sequence data. - New
sequence.unpack
operator converting non-sequence data to sequence. - Convolution in 1D is now supported.
- Added support for UDF serialization (available both in Python and native in C++).
-
Base64ImageDeserializer
is now available in Python - Crosstalk is now in preview. This is a tool for comparing and converting tensors/parameters between different DL platforms. Currently only have limited support for CNTK and Tensorflow (v.0.12 or greater).
- Introducing RNN Conversion tool to change
optimized_rnnstack
node to GEMM based RNNs, so the model can be used on CPU.
Java API is added to support model evaluation in Java on Windows and Linux. Note, that the API is still experimental and subject to change. Feedback from community is greatly appreciated. See the details at the following pages: Java API on Windows, and Java API on Linux.
CNTK v.2.0 RC 3 binary distribution and Docker Hub images are built using cuDNN 5.1. However, it is now possible to build CNTK from source code using NVIDIA cuDNN Library v.6.0. This is what is needed to enable that:
- Linux. Pass the path to cuDNN via the parameter in `configure' script. Example:
./configure --with-cudnn=/path/to/cudnn6
-
Windows. Set environment variable
%CUDNN_PATH%
to to the cuDNN installation path, e.g.c:\path\to\cudnn6\cuda
- RNG users (
Dropout
,RandomSample
,RandomSampleWithFrequency
and Parameter initialization) need to be sure to honorset_fixed_random_seed
setting. - Added
initial seed
reader configuration option. - Minor usability improvements in device selection/locking.
- Preventing an infinite loop in random parameter initialization (an exception is raised if
initializer
scale is <= 0). - Made
sigmoid
andLogSum
numerically stable. - Fixed backprop for
LogSum
. - Added support for
input
variables without any dynamic axes. - Added support for executing
Function.eval
beforeFunction.grad
. - Several improvements and bug fixes for
UserFunction
. - Several sparse data handling fixes.
A new set of NuGet Packages is provided with this Release.
IMPORTANT! For Visual Studio: In the Manage Nuget Packages window change the default option Stable Only to Include Prerelease. Otherwise the release candidate package of CNTK will not be visible. This Package version is 2.0.0-rc3
.
In CNTK 2.0 RC 3 we have removed the API mentioned in the table below. All API were previously declared as deprecated. Also see what API are replacing the deprecated and removed ones.
Removed API (was previously deprecated) | Replacement API |
---|---|
Axis.end_static_axis() |
Axis.new_leading_axis() 1
|
Module blocks
|
Module layers 2
|
MinibatchData.value |
asarray() , as_sequences() , or data 3
|
MinibatchSource constructor parameters:a) randomization_window , sample_based_randomization_window b) epoch_size
|
Replacements for removed MinibatchSource constructor parameters:a) randomization_window_in_chunks or randomization_window_in_samples b) max_samples or max_sweeps
|
cntk.future_value cntk.ops.future_value cntk.past_value cntk.ops.past_value
|
cntk.sequence.future_value cntk.ops.sequence.future_value cntk.sequence.past_value cntk.ops.sequence.past_value
|
cntk.placeholder_variable cntk.ops.placeholder_variable
|
cntk.placeholder cntk.ops.placeholder
|
cntk.set_default_device cntk.device.set_default_device
|
cntk.try_set_default_device cntk.device.try_set_default_device
|
cntk.layers.LayerStack |
cntk.layers.For |
cntk.logging.graph.output_function_graph |
cntk.logging.graph.plot |
Function.save_model Function.restore_model cntk.save_model
|
Function.save Function.restore Function.save
|
1 Creates an Axis
object representing a new leading static axis. ↩
2 blocks
module should not be imported separately anymore. Only import layers
which includes blocks
. ↩
3 Use asarray()
or as_sequences()
to get the data in numpy/scipy representation or data
to get the opaque underlying Value
object representation. ↩