squeeze and unsqueeze operators for the dnnl execution provider (#9798)
* Implementaiton of Squeeze op for dnnl ep
Signed-off-by: George Nash <george.nash@intel.com>
* Implementaiton of Unsqueeze op for dnnl ep
Tests were added to the unsqueeze_op_test to test Unsqueeze op
with a scalar input.
The OneDNN (dnnl) ep automatically converts scalars to a one dimentional
tensor. For most operations this causes no problems. However, for
Unsqueeze the difference between a scalar vs. tensor couldn't be
ignored. A IsScalar member function was added to the DnnlSubgrapPrimitive
class that will return true if the ORT tensor was a scalar type. IsScalar()
is then used inside the Unsqueeze code.
updated the squeeze node capability to only accept ConstantInitializer
inputs.
All unsqueeze op tests that tested opset 13 now run with and without
constant initializers.
Signed-off-by: George Nash <george.nash@intel.com>