* Support SequenceIs[First,Last] with ConstantOfShape
* Update bypass load test in verify\_one\_input & add test for one hot
op
* Update export for one hot op. Migrate from exporting
onnx.ml.OneHotEncoder to onnx.OneHot.
Op fixes
* Fix topk onnx\_op\_test
* Support MVN export using ONNX function
* Fix LayerNormalization
* Skip tests for sequence slice float16: not supported in cntk
* Support gather export & import with float16
- Fix cntk gather issue with float16 inputs.
- Support exporting constant float16 tensor.
- Support importing int32 indices input for gather.
* Enable more passed op tests
* A few patches are required to build cntk_uwp.
* Use proto from onnxruntime/protobuf instead of from onnx.
* TODO: Some issues with onnx_op_test RNN and OptimizedRNNStack from shape inference.
* Move to support CUDA 10, cudnn 7.3, cub 1.8.
* Fixed a bug related to "pointer to pin pointer is disallowed" #3063,
which is exposed in newer version vctools.
* Added workaround for a potential vs2017 15.9 bug with cntk Debug
version.
* Temporarily reverse the extra padding location in case of
SAME_UPPER vs SAME_LOWER for convTranspose to match with onnxruntime.
* In case of importing asymmetric padding convTranspose, use
symmetric pads by alter the output_shape and pads, and attach a slice
node afterwards to enable cudnn.
* Fix a bug in slice/squeeze attribute axes export.
* ConvTranspose outputShape: now pads values are always exported even
when outputShape is given. The reason is that CNTK and ONNX have
different padding specs.
* Flatten: in CNTK flatten does not affect batch axis, this should be
preserved in ONNX.
* onnx_test_runner.exe will be called on win64 GPU tests to verify if
the output data produced by CNTK in onnx_op_test and
onnx_model_test(cntk_model_test) matches in onnxruntime.
* Overhaul node name export. Create static class UniqueNodeNameStorage
to manage ONNX node name generation with maintained one-to-one mapping
between CNTK Uid, while preserving the original CNTK node name by best
efforts (#3358).
* Update onnx_op_test to test the preservation of original CNTK node
names in exported/imported models.
* Update onnx_test_helper to support proper linking of test data and
onnx model input/output with unique names.
* Update onnx_test_helper to generate .bat file to run exported models
in further onnxruntime verification.
* Fix Sum import to support arbitrary number of inputs. Sum
implementation in CNTK backend is loop of Plus, which takes care of
potential broadcast issues.
* Compute keyInterior according to the updated algorithm for computing
cell offset key.
* Update unittest of avg_pooling/max_pooling for cases that requires
auto_padding = True. Previous test cases cover only those that do not
need padding.
* ONNX supports similar op ReduceLogSumExp. Conversions are added when
exporting.
* Refactored CNTKToONNXHelper::BroadcastInputsIfNeeded to support more
generalized cases.
Previously, to resolve issue of gather producing incorrect gradient
values, validity mask check was added to ensure we don't count non-valid
cells as 0.
However, this check is needed only for input that has dynamic axis, i.e.
inputs that have MBLayout.
- Previous implementation has the assumption that (0 <= dk < width).
This assumption doesn't stand when lo >(kernel - 1) / 2.
The updated calculation supports arbitrary lo & hi non-negative
integer value. The new calculation has dk in range (0, width + hi +
lo].
- Enables onnx backend test {averagepool_2d_pads, maxpool_2d_pads} to
pass.