aboutsummaryrefslogtreecommitdiff
path: root/src/armnn
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn')
-rw-r--r--src/armnn/Runtime.cpp4
-rw-r--r--src/armnn/Runtime.hpp4
-rw-r--r--src/armnn/optimizations/ConvertConstants.hpp8
-rw-r--r--src/armnn/optimizations/FuseBatchNorm.hpp2
-rw-r--r--src/armnn/test/ConstTensorLayerVisitor.cpp922
-rw-r--r--src/armnn/test/CreateWorkload.hpp4
-rw-r--r--src/armnn/test/DebugCallbackTest.cpp4
-rw-r--r--src/armnn/test/FlowControl.cpp2
-rw-r--r--src/armnn/test/GraphTests.cpp2
-rw-r--r--src/armnn/test/NetworkTests.cpp4
-rw-r--r--src/armnn/test/OptimizerTests.cpp22
-rw-r--r--src/armnn/test/RuntimeTests.cpp10
-rw-r--r--src/armnn/test/ShapeInferenceTests.cpp16
-rw-r--r--src/armnn/test/TensorTest.cpp42
-rw-r--r--src/armnn/test/optimizations/AddBroadcastReshapeLayerTests.cpp4
-rw-r--r--src/armnn/test/optimizations/ConvertConstantsBFloatTests.cpp4
-rw-r--r--src/armnn/test/optimizations/ConvertConstantsFloatToHalfTests.cpp2
-rw-r--r--src/armnn/test/optimizations/ConvertConstantsHalfToFloatTests.cpp2
-rw-r--r--src/armnn/test/optimizations/FoldPadTests.cpp24
-rw-r--r--src/armnn/test/optimizations/Fp32NetworkToBf16ConverterTests.cpp8
-rw-r--r--src/armnn/test/optimizations/FuseActivationTests.cpp27
-rw-r--r--src/armnn/test/optimizations/FuseBatchNormTests.cpp21
-rw-r--r--src/armnn/test/optimizations/PermuteAndBatchToSpaceAsDepthToSpaceTests.cpp4
-rw-r--r--src/armnn/test/optimizations/ReduceMultipleAxesTests.cpp4
24 files changed, 711 insertions, 435 deletions
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index 9e212306c4..76f39e0feb 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -67,12 +67,12 @@ Status IRuntime::LoadNetwork(NetworkId& networkIdOut,
return pRuntimeImpl->LoadNetwork(networkIdOut, std::move(network), errorMessage, networkProperties);
}
-TensorInfo IRuntime::GetInputTensorInfo(NetworkId networkId, LayerBindingId layerId) const
+armnn::TensorInfo IRuntime::GetInputTensorInfo(NetworkId networkId, LayerBindingId layerId) const
{
return pRuntimeImpl->GetInputTensorInfo(networkId, layerId);
}
-TensorInfo IRuntime::GetOutputTensorInfo(NetworkId networkId, LayerBindingId layerId) const
+armnn::TensorInfo IRuntime::GetOutputTensorInfo(NetworkId networkId, LayerBindingId layerId) const
{
return pRuntimeImpl->GetOutputTensorInfo(networkId, layerId);
}
diff --git a/src/armnn/Runtime.hpp b/src/armnn/Runtime.hpp
index 05de372eee..4052bb6d3a 100644
--- a/src/armnn/Runtime.hpp
+++ b/src/armnn/Runtime.hpp
@@ -52,8 +52,8 @@ public:
std::string& errorMessage,
const INetworkProperties& networkProperties);
- TensorInfo GetInputTensorInfo(NetworkId networkId, LayerBindingId layerId) const;
- TensorInfo GetOutputTensorInfo(NetworkId networkId, LayerBindingId layerId) const;
+ armnn::TensorInfo GetInputTensorInfo(NetworkId networkId, LayerBindingId layerId) const;
+ armnn::TensorInfo GetOutputTensorInfo(NetworkId networkId, LayerBindingId layerId) const;
std::vector<ImportedInputId> ImportInputs(NetworkId networkId, const InputTensors& inputTensors);
std::vector<ImportedOutputId> ImportOutputs(NetworkId networkId, const OutputTensors& outputTensors);
diff --git a/src/armnn/optimizations/ConvertConstants.hpp b/src/armnn/optimizations/ConvertConstants.hpp
index 66b3d2685a..65318af285 100644
--- a/src/armnn/optimizations/ConvertConstants.hpp
+++ b/src/armnn/optimizations/ConvertConstants.hpp
@@ -35,7 +35,7 @@ struct BFloat16ToFloat32
info.GetNumElements(),
newValues.data());
- TensorInfo newInfo(info.GetShape(), DataType::Float32);
+ TensorInfo newInfo(info.GetShape(), DataType::Float32, 0.0f, 0, true);
ConstTensor newInput(newInfo, newValues);
handle.reset(new ScopedTensorHandle(newInput));
}
@@ -56,7 +56,7 @@ struct Float16ToFloat32
info.GetNumElements(),
newValues.data());
- TensorInfo newInfo(info.GetShape(), DataType::Float32);
+ TensorInfo newInfo(info.GetShape(), DataType::Float32, 0.0f, 0, true);
ConstTensor newInput(newInfo, newValues);
handle.reset(new ScopedTensorHandle(newInput));
}
@@ -77,7 +77,7 @@ struct Float32ToBFloat16
info.GetNumElements(),
newValues.data());
- TensorInfo newInfo(info.GetShape(), DataType::BFloat16);
+ TensorInfo newInfo(info.GetShape(), DataType::BFloat16, 0.0f, 0, true);
ConstTensor newInput(newInfo, newValues);
handle.reset(new ScopedTensorHandle(newInput));
}
@@ -98,7 +98,7 @@ struct Float32ToFloat16
info.GetNumElements(),
newValues.data());
- TensorInfo newInfo(info.GetShape(), DataType::Float16);
+ TensorInfo newInfo(info.GetShape(), DataType::Float16, 0.0f, 0, true);
ConstTensor newInput(newInfo, newValues);
handle.reset(new ScopedTensorHandle(newInput));
}
diff --git a/src/armnn/optimizations/FuseBatchNorm.hpp b/src/armnn/optimizations/FuseBatchNorm.hpp
index fe8238bf14..66f722a8ef 100644
--- a/src/armnn/optimizations/FuseBatchNorm.hpp
+++ b/src/armnn/optimizations/FuseBatchNorm.hpp
@@ -146,7 +146,7 @@ public:
sqrtf(varianceVector[cOut] + epsilon)) + betaVector[cOut];
}
}
- ConstTensor fusedBiasTensor(TensorInfo({outputChannels}, ArmnnType), fusedBiasVector);
+ ConstTensor fusedBiasTensor(TensorInfo({outputChannels}, ArmnnType, 0.0f, 0, true), fusedBiasVector);
// Insert the new convolution layer that has batch norm parameters fused into
const std::string name = std::string("fused-") + child.GetName() + std::string("-into-") + base.GetName();
diff --git a/src/armnn/test/ConstTensorLayerVisitor.cpp b/src/armnn/test/ConstTensorLayerVisitor.cpp
index e21e777409..cbc97b3c0e 100644
--- a/src/armnn/test/ConstTensorLayerVisitor.cpp
+++ b/src/armnn/test/ConstTensorLayerVisitor.cpp
@@ -122,7 +122,7 @@ TEST_CASE("CheckConvolution2dLayer")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
TestConvolution2dLayerVisitor visitor(descriptor, weights, EmptyOptional());
@@ -146,7 +146,7 @@ TEST_CASE("CheckNamedConvolution2dLayer")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
TestConvolution2dLayerVisitor visitor(descriptor, weights, EmptyOptional(), layerName);
@@ -170,11 +170,11 @@ TEST_CASE("CheckConvolution2dLayerWithBiases")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
- ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32), biasData);
+ ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32, 0.0f, 0, true), biasData);
Optional<ConstTensor> optionalBiases(biases);
TestConvolution2dLayerVisitor visitor(descriptor, weights, optionalBiases);
@@ -200,11 +200,11 @@ TEST_CASE("CheckNamedConvolution2dLayerWithBiases")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
- ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32), biasData);
+ ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32, 0.0f, 0, true), biasData);
Optional<ConstTensor> optionalBiases(biases);
TestConvolution2dLayerVisitor visitor(descriptor, weights, optionalBiases, layerName);
@@ -228,7 +228,7 @@ TEST_CASE("CheckDepthwiseConvolution2dLayer")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
TestDepthwiseConvolution2dLayerVisitor visitor(descriptor, weights, EmptyOptional());
@@ -252,7 +252,7 @@ TEST_CASE("CheckNamedDepthwiseConvolution2dLayer")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
TestDepthwiseConvolution2dLayerVisitor visitor(descriptor, weights, EmptyOptional(), layerName);
@@ -279,11 +279,11 @@ TEST_CASE("CheckDepthwiseConvolution2dLayerWithBiases")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
- ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32), biasData);
+ ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32, 0.0f, 0, true), biasData);
Optional<ConstTensor> optionalBiases(biases);
TestDepthwiseConvolution2dLayerVisitor visitor(descriptor, weights, optionalBiases);
@@ -309,11 +309,11 @@ TEST_CASE("CheckNamedDepthwiseConvolution2dLayerWithBiases")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
- ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32), biasData);
+ ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32, 0.0f, 0, true), biasData);
Optional<ConstTensor> optionalBiases(biases);
TestDepthwiseConvolution2dLayerVisitor visitor(descriptor, weights, optionalBiases, layerName);
@@ -333,7 +333,7 @@ TEST_CASE("CheckFullyConnectedLayer")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
TestConstantLayerVisitor weightsVisitor(weights);
TestFullyConnectedLayerVistor visitor(descriptor);
@@ -358,7 +358,7 @@ TEST_CASE("CheckNamedFullyConnectedLayer")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
TestConstantLayerVisitor weightsVisitor(weights);
TestFullyConnectedLayerVistor visitor(descriptor, layerName);
@@ -382,11 +382,11 @@ TEST_CASE("CheckFullyConnectedLayerWithBiases")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
- ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32), biasData);
+ ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32, 0.0f, 0, true), biasData);
TestConstantLayerVisitor weightsVisitor(weights);
TestConstantLayerVisitor biasesVisitor(biases);
@@ -415,11 +415,11 @@ TEST_CASE("CheckNamedFullyConnectedLayerWithBiases")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor weights(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
- ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32), biasData);
+ ConstTensor biases(TensorInfo(4, biasDimensions.data(), DataType::Float32, 0.0f, 0, true), biasData);
TestConstantLayerVisitor weightsVisitor(weights);
TestConstantLayerVisitor biasesVisitor(biases);
@@ -446,19 +446,19 @@ TEST_CASE("CheckBatchNormalizationLayer")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor mean(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor mean(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
std::vector<float> varianceData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> varianceDimensions = {1, 1, 3, 3};
- ConstTensor variance(TensorInfo(4, varianceDimensions.data(), DataType::Float32), varianceData);
+ ConstTensor variance(TensorInfo(4, varianceDimensions.data(), DataType::Float32, 0.0f, 0, true), varianceData);
std::vector<float> betaData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> betaDimensions = {1, 1, 3, 3};
- ConstTensor beta(TensorInfo(4, betaDimensions.data(), DataType::Float32), betaData);
+ ConstTensor beta(TensorInfo(4, betaDimensions.data(), DataType::Float32, 0.0f, 0, true), betaData);
std::vector<float> gammaData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> gammaDimensions = {1, 1, 3, 3};
- ConstTensor gamma(TensorInfo(4, gammaDimensions.data(), DataType::Float32), gammaData);
+ ConstTensor gamma(TensorInfo(4, gammaDimensions.data(), DataType::Float32, 0.0f, 0, true), gammaData);
TestBatchNormalizationLayerVisitor visitor(descriptor, mean, variance, beta, gamma);
@@ -477,19 +477,19 @@ TEST_CASE("CheckNamedBatchNormalizationLayer")
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor mean(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor mean(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
std::vector<float> varianceData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> varianceDimensions = {1, 1, 3, 3};
- ConstTensor variance(TensorInfo(4, varianceDimensions.data(), DataType::Float32), varianceData);
+ ConstTensor variance(TensorInfo(4, varianceDimensions.data(), DataType::Float32, 0.0f, 0, true), varianceData);
std::vector<float> betaData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> betaDimensions = {1, 1, 3, 3};
- ConstTensor beta(TensorInfo(4, betaDimensions.data(), DataType::Float32), betaData);
+ ConstTensor beta(TensorInfo(4, betaDimensions.data(), DataType::Float32, 0.0f, 0, true), betaData);
std::vector<float> gammaData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> gammaDimensions = {1, 1, 3, 3};
- ConstTensor gamma(TensorInfo(4, gammaDimensions.data(), DataType::Float32), gammaData);
+ ConstTensor gamma(TensorInfo(4, gammaDimensions.data(), DataType::Float32, 0.0f, 0, true), gammaData);
TestBatchNormalizationLayerVisitor visitor(descriptor, mean, variance, beta, gamma, layerName);
@@ -504,7 +504,7 @@ TEST_CASE("CheckConstLayer")
{
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor input(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor input(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
TestConstantLayerVisitor visitor(input);
@@ -519,7 +519,7 @@ TEST_CASE("CheckNamedConstLayer")
const char* layerName = "ConstantLayer";
std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> dimensions = {1, 1, 3, 3};
- ConstTensor input(TensorInfo(4, dimensions.data(), DataType::Float32), data);
+ ConstTensor input(TensorInfo(4, dimensions.data(), DataType::Float32, 0.0f, 0, true), data);
TestConstantLayerVisitor visitor(input, layerName);
@@ -540,47 +540,56 @@ TEST_CASE("CheckLstmLayerBasic")
std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::Float32), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::Float32), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::Float32), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Float32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Float32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellBiasData);
std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Float32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ outputGateBiasData);
LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
@@ -613,47 +622,56 @@ TEST_CASE("CheckNamedLstmLayerBasic")
std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::Float32), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::Float32), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::Float32), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Float32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Float32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellBiasData);
std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Float32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ outputGateBiasData);
LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
@@ -685,64 +703,76 @@ TEST_CASE("CheckLstmLayerCifgDisabled")
std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::Float32), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::Float32), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::Float32), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Float32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Float32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellBiasData);
std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Float32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ outputGateBiasData);
std::vector<float> inputToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToInputWeights(
- TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::Float32), inputToInputWeightsData);
+ TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToInputWeightsData);
std::vector<float> recurrentToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToInputWeights(TensorInfo(
- 4, recurrentToInputWeightsDimensions.data(), DataType::Float32), recurrentToInputWeightsData);
+ ConstTensor recurrentToInputWeights(
+ TensorInfo(4, recurrentToInputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToInputWeightsData);
std::vector<float> inputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
ConstTensor inputGateBias(
- TensorInfo(4, inputGateBiasDimensions.data(), DataType::Float32), inputGateBiasData);
+ TensorInfo(4, inputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputGateBiasData);
- LstmInputParams params;
+ LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
params.m_InputToCellWeights = &inputToCellWeights;
params.m_InputToOutputWeights = &inputToOutputWeights;
@@ -777,62 +807,74 @@ TEST_CASE("CheckNamedLstmLayerCifgDisabled")
std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::Float32), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::Float32), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::Float32), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Float32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Float32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellBiasData);
std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Float32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ outputGateBiasData);
std::vector<float> inputToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToInputWeights(
- TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::Float32), inputToInputWeightsData);
+ TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToInputWeightsData);
std::vector<float> recurrentToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToInputWeights(TensorInfo(
- 4, recurrentToInputWeightsDimensions.data(), DataType::Float32), recurrentToInputWeightsData);
+ ConstTensor recurrentToInputWeights(
+ TensorInfo(4, recurrentToInputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToInputWeightsData);
std::vector<float> inputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
ConstTensor inputGateBias(
- TensorInfo(4, inputGateBiasDimensions.data(), DataType::Float32), inputGateBiasData);
+ TensorInfo(4, inputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputGateBiasData);
LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
@@ -870,59 +912,70 @@ TEST_CASE("CheckLstmLayerPeephole")
std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::Float32), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::Float32), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::Float32), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Float32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Float32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellBiasData);
std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Float32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ outputGateBiasData);
std::vector<float> cellToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToForgetWeights(
- TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::Float32), cellToForgetWeightsData);
+ TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellToForgetWeightsData);
std::vector<float> cellToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToOutputWeights(
- TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::Float32), cellToOutputWeightsData);
+ TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellToOutputWeightsData);
- LstmInputParams params;
+ LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
params.m_InputToCellWeights = &inputToCellWeights;
params.m_InputToOutputWeights = &inputToOutputWeights;
@@ -956,77 +1009,92 @@ TEST_CASE("CheckLstmLayerPeepholeCifgDisabled")
std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::Float32), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::Float32), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::Float32), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Float32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Float32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellBiasData);
std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Float32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ outputGateBiasData);
std::vector<float> cellToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToInputWeights(
- TensorInfo(4, cellToInputWeightsDimensions.data(), DataType::Float32), cellToInputWeightsData);
+ TensorInfo(4, cellToInputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellToInputWeightsData);
std::vector<float> cellToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToForgetWeights(
- TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::Float32), cellToForgetWeightsData);
+ TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellToForgetWeightsData);
std::vector<float> cellToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToOutputWeights(
- TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::Float32), cellToOutputWeightsData);
+ TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellToOutputWeightsData);
std::vector<float> inputToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToInputWeights(
- TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::Float32), inputToInputWeightsData);
+ TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToInputWeightsData);
std::vector<float> recurrentToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToInputWeights(TensorInfo(
- 4, recurrentToInputWeightsDimensions.data(), DataType::Float32), recurrentToInputWeightsData);
+ ConstTensor recurrentToInputWeights(
+ TensorInfo(4, recurrentToInputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToInputWeightsData);
std::vector<float> inputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
ConstTensor inputGateBias(
- TensorInfo(4, inputGateBiasDimensions.data(), DataType::Float32), inputGateBiasData);
+ TensorInfo(4, inputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputGateBiasData);
LstmInputParams params;
// Basic params
@@ -1071,57 +1139,68 @@ TEST_CASE("CheckNamedLstmLayerPeephole")
std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::Float32), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::Float32), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::Float32), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Float32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Float32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellBiasData);
std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Float32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ outputGateBiasData);
std::vector<float> cellToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToForgetWeights(
- TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::Float32), cellToForgetWeightsData);
+ TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellToForgetWeightsData);
std::vector<float> cellToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToOutputWeights(
- TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::Float32), cellToOutputWeightsData);
+ TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellToOutputWeightsData);
LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
@@ -1158,59 +1237,70 @@ TEST_CASE("CheckLstmLayerProjection")
std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::Float32), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::Float32), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::Float32), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Float32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Float32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellBiasData);
std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Float32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ outputGateBiasData);
std::vector<float> projectionBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> projectionBiasDimensions = {1, 1, 3, 3};
ConstTensor projectionBias(
- TensorInfo(4, projectionBiasDimensions.data(), DataType::Float32), projectionBiasData);
+ TensorInfo(4, projectionBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ projectionBiasData);
std::vector<float> projectionWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> projectionWeightsDimensions = {1, 1, 3, 3};
ConstTensor projectionWeights(
- TensorInfo(4, projectionWeightsDimensions.data(), DataType::Float32), projectionWeightsData);
+ TensorInfo(4, projectionWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ projectionWeightsData);
- LstmInputParams params;
+ LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
params.m_InputToCellWeights = &inputToCellWeights;
params.m_InputToOutputWeights = &inputToOutputWeights;
@@ -1245,57 +1335,68 @@ TEST_CASE("CheckNamedLstmLayerProjection")
std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::Float32), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::Float32), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::Float32), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Float32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Float32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ cellBiasData);
std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Float32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ outputGateBiasData);
std::vector<float> projectionBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> projectionBiasDimensions = {1, 1, 3, 3};
ConstTensor projectionBias(
- TensorInfo(4, projectionBiasDimensions.data(), DataType::Float32), projectionBiasData);
+ TensorInfo(4, projectionBiasDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ projectionBiasData);
std::vector<float> projectionWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
std::vector<unsigned int> projectionWeightsDimensions = {1, 1, 3, 3};
ConstTensor projectionWeights(
- TensorInfo(4, projectionWeightsDimensions.data(), DataType::Float32), projectionWeightsData);
+ TensorInfo(4, projectionWeightsDimensions.data(), DataType::Float32, 0.0f, 0, true),
+ projectionWeightsData);
LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
@@ -1330,47 +1431,56 @@ TEST_CASE("CheckQLstmLayerBasic")
std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Signed32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Signed32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ cellBiasData);
std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Signed32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ outputGateBiasData);
LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
@@ -1403,47 +1513,56 @@ TEST_CASE("CheckNamedQLstmLayerBasic")
std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Signed32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Signed32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ cellBiasData);
std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Signed32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ outputGateBiasData);
LstmInputParams params;
params.m_InputToForgetWeights = &inputToForgetWeights;
@@ -1475,63 +1594,75 @@ TEST_CASE("CheckQLstmLayerCifgDisabled")
std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Signed32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Signed32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ cellBiasData);
std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Signed32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ outputGateBiasData);
// CIFG disabled params
std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToInputWeights(
- TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QSymmS8), inputToInputWeightsData);
+ TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToInputWeightsData);
std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToInputWeights(TensorInfo(
- 4, recurrentToInputWeightsDimensions.data(), DataType::QSymmS8), recurrentToInputWeightsData);
+ ConstTensor recurrentToInputWeights(
+ TensorInfo(4, recurrentToInputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToInputWeightsData);
std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
ConstTensor inputGateBias(
- TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32), inputGateBiasData);
+ TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ inputGateBiasData);
LstmInputParams params;
@@ -1571,79 +1702,94 @@ TEST_CASE("CheckQLstmLayerCifgDisabledPeepholeEnabled")
std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Signed32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Signed32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ cellBiasData);
std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Signed32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ outputGateBiasData);
// CIFG disabled params
std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToInputWeights(
- TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QSymmS8), inputToInputWeightsData);
+ TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToInputWeightsData);
std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToInputWeights(TensorInfo(
- 4, recurrentToInputWeightsDimensions.data(), DataType::QSymmS8), recurrentToInputWeightsData);
+ ConstTensor recurrentToInputWeights(
+ TensorInfo(4, recurrentToInputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToInputWeightsData);
std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
ConstTensor inputGateBias(
- TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32), inputGateBiasData);
+ TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ inputGateBiasData);
// Peephole enabled, CIFG disabled params
std::vector<int16_t> cellToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToInputWeights(
- TensorInfo(4, cellToInputWeightsDimensions.data(), DataType::QSymmS16), cellToInputWeightsData);
+ TensorInfo(4, cellToInputWeightsDimensions.data(), DataType::QSymmS16, 0.0f, 0, true),
+ cellToInputWeightsData);
std::vector<int16_t> cellToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToForgetWeights(
- TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::QSymmS16), cellToForgetWeightsData);
+ TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::QSymmS16, 0.0f, 0, true),
+ cellToForgetWeightsData);
std::vector<int16_t> cellToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToOutputWeights(
- TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::QSymmS16), cellToOutputWeightsData);
+ TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::QSymmS16, 0.0f, 0, true),
+ cellToOutputWeightsData);
LstmInputParams params;
@@ -1688,58 +1834,69 @@ TEST_CASE("CheckQLstmLayerCifgEnabledPeepholeEnabled")
std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Signed32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Signed32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ cellBiasData);
std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Signed32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ outputGateBiasData);
// Peephole enabled and CIFG enabled params
std::vector<int16_t> cellToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToForgetWeights(
- TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::QSymmS16), cellToForgetWeightsData);
+ TensorInfo(4, cellToForgetWeightsDimensions.data(), DataType::QSymmS16, 0.0f, 0, true),
+ cellToForgetWeightsData);
std::vector<int16_t> cellToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellToOutputWeights(
- TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::QSymmS16), cellToOutputWeightsData);
+ TensorInfo(4, cellToOutputWeightsDimensions.data(), DataType::QSymmS16, 0.0f, 0, true),
+ cellToOutputWeightsData);
LstmInputParams params;
@@ -1778,58 +1935,69 @@ TEST_CASE("CheckQLstmLayerProjectionEnabled")
std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Signed32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Signed32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ cellBiasData);
std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Signed32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ outputGateBiasData);
// Projection enabled params
std::vector<uint8_t> projectionWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> projectionWeightsDimensions = {1, 1, 3, 3};
- ConstTensor projectionWeights(TensorInfo(
- 4, projectionWeightsDimensions.data(), DataType::QSymmS8), projectionWeightsData);
+ ConstTensor projectionWeights(
+ TensorInfo(4, projectionWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ projectionWeightsData);
std::vector<int32_t> projectionBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> projectionBiasDimensions = {1, 1, 3, 3};
- ConstTensor projectionBias(TensorInfo(
- 4, projectionBiasDimensions.data(), DataType::Signed32), projectionBiasData);
+ ConstTensor projectionBias(
+ TensorInfo(4, projectionBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ projectionBiasData);
LstmInputParams params;
@@ -1868,84 +2036,100 @@ TEST_CASE("CheckQLstmLayerCifgDisabledLayerNormEnabled")
std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Signed32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Signed32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ cellBiasData);
std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Signed32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ outputGateBiasData);
// CIFG disabled params
std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToInputWeights(
- TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QSymmS8), inputToInputWeightsData);
+ TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToInputWeightsData);
std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToInputWeights(TensorInfo(
- 4, recurrentToInputWeightsDimensions.data(), DataType::QSymmS8), recurrentToInputWeightsData);
+ ConstTensor recurrentToInputWeights(
+ TensorInfo(4, recurrentToInputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToInputWeightsData);
std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
ConstTensor inputGateBias(
- TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32), inputGateBiasData);
+ TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ inputGateBiasData);
// Layer Norm enabled, CIFG disabled params
std::vector<int16_t> inputLayerNormWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputLayerNormWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputLayerNormWeights(
- TensorInfo(4, inputLayerNormWeightsDimensions.data(), DataType::QSymmS16), inputLayerNormWeightsData);
+ TensorInfo(4, inputLayerNormWeightsDimensions.data(), DataType::QSymmS16, 0.0f, 0, true),
+ inputLayerNormWeightsData);
std::vector<int16_t> forgetLayerNormWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetLayerNormWeightsDimensions = {1, 1, 3, 3};
ConstTensor forgetLayerNormWeights(
- TensorInfo(4, forgetLayerNormWeightsDimensions.data(), DataType::QSymmS16), forgetLayerNormWeightsData);
+ TensorInfo(4, forgetLayerNormWeightsDimensions.data(), DataType::QSymmS16, 0.0f, 0, true),
+ forgetLayerNormWeightsData);
std::vector<int16_t> cellLayerNormWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellLayerNormWeightsDimensions = {1, 1, 3, 3};
ConstTensor cellLayerNormWeights(
- TensorInfo(4, cellLayerNormWeightsDimensions.data(), DataType::QSymmS16), cellLayerNormWeightsData);
+ TensorInfo(4, cellLayerNormWeightsDimensions.data(), DataType::QSymmS16, 0.0f, 0, true),
+ cellLayerNormWeightsData);
std::vector<int16_t> outputLayerNormWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputLayerNormWeightsDimensions = {1, 1, 3, 3};
ConstTensor outputLayerNormWeights(
- TensorInfo(4, outputLayerNormWeightsDimensions.data(), DataType::QSymmS16), outputLayerNormWeightsData);
+ TensorInfo(4, outputLayerNormWeightsDimensions.data(), DataType::QSymmS16, 0.0f, 0, true),
+ outputLayerNormWeightsData);
LstmInputParams params;
@@ -1985,64 +2169,76 @@ TEST_CASE("CheckQuantizedLstmLayer")
std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToInputWeights(
- TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QSymmS8), inputToInputWeightsData);
+ TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToInputWeightsData);
std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToInputWeights(TensorInfo(
- 4, recurrentToInputWeightsDimensions.data(), DataType::QSymmS8), recurrentToInputWeightsData);
+ ConstTensor recurrentToInputWeights(
+ TensorInfo(4, recurrentToInputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToInputWeightsData);
std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::QSymmS8, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
ConstTensor inputGateBias(
- TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32), inputGateBiasData);
+ TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ inputGateBiasData);
std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Signed32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Signed32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ cellBiasData);
std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Signed32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ outputGateBiasData);
QuantizedLstmInputParams params;
@@ -2075,64 +2271,76 @@ TEST_CASE("CheckNamedQuantizedLstmLayer")
std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToInputWeights(
- TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QAsymmU8), inputToInputWeightsData);
+ TensorInfo(4, inputToInputWeightsDimensions.data(), DataType::QAsymmU8, 0.0f, 0, true),
+ inputToInputWeightsData);
std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToForgetWeights(
- TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QAsymmU8), inputToForgetWeightsData);
+ TensorInfo(4, inputToForgetWeightsDimensions.data(), DataType::QAsymmU8, 0.0f, 0, true),
+ inputToForgetWeightsData);
std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToCellWeights(
- TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QAsymmU8), inputToCellWeightsData);
+ TensorInfo(4, inputToCellWeightsDimensions.data(), DataType::QAsymmU8, 0.0f, 0, true),
+ inputToCellWeightsData);
std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
ConstTensor inputToOutputWeights(
- TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QAsymmU8), inputToOutputWeightsData);
+ TensorInfo(4, inputToOutputWeightsDimensions.data(), DataType::QAsymmU8, 0.0f, 0, true),
+ inputToOutputWeightsData);
std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToInputWeights(TensorInfo(
- 4, recurrentToInputWeightsDimensions.data(), DataType::QAsymmU8), recurrentToInputWeightsData);
+ ConstTensor recurrentToInputWeights(
+ TensorInfo(4, recurrentToInputWeightsDimensions.data(), DataType::QAsymmU8, 0.0f, 0, true),
+ recurrentToInputWeightsData);
std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToForgetWeights(TensorInfo(
- 4, recurrentToForgetWeightsDimensions.data(), DataType::QAsymmU8), recurrentToForgetWeightsData);
+ ConstTensor recurrentToForgetWeights(
+ TensorInfo(4, recurrentToForgetWeightsDimensions.data(), DataType::QAsymmU8, 0.0f, 0, true),
+ recurrentToForgetWeightsData);
std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToCellWeights(TensorInfo(
- 4, recurrentToCellWeightsDimensions.data(), DataType::QAsymmU8), recurrentToCellWeightsData);
+ ConstTensor recurrentToCellWeights(
+ TensorInfo(4, recurrentToCellWeightsDimensions.data(), DataType::QAsymmU8, 0.0f, 0, true),
+ recurrentToCellWeightsData);
std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
- ConstTensor recurrentToOutputWeights(TensorInfo(
- 4, recurrentToOutputWeightsDimensions.data(), DataType::QAsymmU8), recurrentToOutputWeightsData);
+ ConstTensor recurrentToOutputWeights(
+ TensorInfo(4, recurrentToOutputWeightsDimensions.data(), DataType::QAsymmU8, 0.0f, 0, true),
+ recurrentToOutputWeightsData);
std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
ConstTensor inputGateBias(
- TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32), inputGateBiasData);
+ TensorInfo(4, inputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ inputGateBiasData);
std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor forgetGateBias(TensorInfo(
- 4, forgetGateBiasDimensions.data(), DataType::Signed32), forgetGateBiasData);
+ ConstTensor forgetGateBias(
+ TensorInfo(4, forgetGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ forgetGateBiasData);
std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
- ConstTensor cellBias(TensorInfo(
- 4, cellBiasDimensions.data(), DataType::Signed32), cellBiasData);
+ ConstTensor cellBias(
+ TensorInfo(4, cellBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ cellBiasData);
std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
- ConstTensor outputGateBias(TensorInfo(
- 4, outputGateBiasDimensions.data(), DataType::Signed32), outputGateBiasData);
+ ConstTensor outputGateBias(
+ TensorInfo(4, outputGateBiasDimensions.data(), DataType::Signed32, 0.0f, 0, true),
+ outputGateBiasData);
QuantizedLstmInputParams params;
diff --git a/src/armnn/test/CreateWorkload.hpp b/src/armnn/test/CreateWorkload.hpp
index 759ada97cd..ea8a436177 100644
--- a/src/armnn/test/CreateWorkload.hpp
+++ b/src/armnn/test/CreateWorkload.hpp
@@ -2052,7 +2052,7 @@ std::pair<armnn::IOptimizedNetworkPtr, std::unique_ptr<PreCompiledWorkload>> Cre
// ArmNN weights tensor shape is OIHW (out channels, in channels, height, width) for NCHW
// ArmNN weights tensor shape is OHWI (out channels, height, width, in channels) for NHWC
// this test is using NHWC, so the weights shape is OHWI
- TensorInfo weightsTensorInfo(TensorShape({16, 1, 1, 16}), dataType, 0.9f, 0);
+ TensorInfo weightsTensorInfo(TensorShape({16, 1, 1, 16}), dataType, 0.9f, 0, true);
unsigned int weightsLength = weightsTensorInfo.GetNumElements();
using WeightType = armnn::ResolveType<dataType>;
@@ -2079,7 +2079,7 @@ std::pair<armnn::IOptimizedNetworkPtr, std::unique_ptr<PreCompiledWorkload>> Cre
constexpr armnn::DataType biasDataType = ( dataType == armnn::DataType::QAsymmU8) ?
armnn::DataType::Signed32 : armnn::DataType::Float32;
- TensorInfo biasTensorInfo(TensorShape({16}), biasDataType, 0.9f * 0.9f, 0);
+ TensorInfo biasTensorInfo(TensorShape({16}), biasDataType, 0.9f * 0.9f, 0, true);
unsigned int biasLength = biasTensorInfo.GetNumElements();
using BiasType = armnn::ResolveType<biasDataType>;
diff --git a/src/armnn/test/DebugCallbackTest.cpp b/src/armnn/test/DebugCallbackTest.cpp
index 48e2c15a79..69b9736f92 100644
--- a/src/armnn/test/DebugCallbackTest.cpp
+++ b/src/armnn/test/DebugCallbackTest.cpp
@@ -71,9 +71,11 @@ TEST_CASE("RuntimeRegisterDebugCallback")
std::vector<float> inputData({-2, -1, 0, 1, 2});
std::vector<float> outputData(5);
+ TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
+ inputTensorInfo.SetConstant(true);
InputTensors inputTensors
{
- {0, ConstTensor(runtime->GetInputTensorInfo(netId, 0), inputData.data())}
+ {0, ConstTensor(inputTensorInfo, inputData.data())}
};
OutputTensors outputTensors
{
diff --git a/src/armnn/test/FlowControl.cpp b/src/armnn/test/FlowControl.cpp
index cb56873663..cdd86c06e4 100644
--- a/src/armnn/test/FlowControl.cpp
+++ b/src/armnn/test/FlowControl.cpp
@@ -27,7 +27,7 @@ TEST_CASE("ErrorOnLoadNetwork")
INetworkPtr net(INetwork::Create());
std::vector<uint8_t> falseData = {0};
- ConstTensor falseTensor(armnn::TensorInfo({1}, armnn::DataType::Boolean), falseData);
+ ConstTensor falseTensor(armnn::TensorInfo({1}, armnn::DataType::Boolean, 0.0f, 0, true), falseData);
IConnectableLayer* constLayer = net->AddConstantLayer(falseTensor, "const");
constLayer->GetOutputSlot(0).SetTensorInfo(armnn::TensorInfo({1}, armnn::DataType::Boolean));
diff --git a/src/armnn/test/GraphTests.cpp b/src/armnn/test/GraphTests.cpp
index b697f6dbe6..f3753398b4 100644
--- a/src/armnn/test/GraphTests.cpp
+++ b/src/armnn/test/GraphTests.cpp
@@ -601,7 +601,7 @@ TEST_CASE("CheckGraphConstTensorSharing")
armnn::ConstantLayer* const constantLayer = graph1.AddLayer<armnn::ConstantLayer>("ConstantLayer");
float weight = 1.0f;
- armnn::ConstTensor constTensor({{ 1, 1 }, armnn::DataType::Float32}, &weight);
+ armnn::ConstTensor constTensor({{ 1, 1 }, armnn::DataType::Float32, 0.0f, 0, true}, &weight);
constantLayer->m_LayerOutput = std::make_shared<armnn::ScopedTensorHandle>(constTensor);;
// point sharedWeightPtr to graph1's const tensor
diff --git a/src/armnn/test/NetworkTests.cpp b/src/armnn/test/NetworkTests.cpp
index 25dab596fd..c1927e3601 100644
--- a/src/armnn/test/NetworkTests.cpp
+++ b/src/armnn/test/NetworkTests.cpp
@@ -74,7 +74,7 @@ TEST_CASE("NetworkModification")
unsigned int dims[] = { 10,1,1,1 };
std::vector<float> convWeightsData(10);
- armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32), convWeightsData);
+ armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32, 0.0f, 0, true), convWeightsData);
armnn::Convolution2dDescriptor convDesc2d;
armnn::IConnectableLayer* const convLayer = net.AddConvolution2dLayer(convDesc2d,
@@ -123,7 +123,7 @@ TEST_CASE("NetworkModification")
armnn::BatchNormalizationDescriptor batchNormDesc;
- armnn::TensorInfo tensorInfo({ 1 }, armnn::DataType::Float32);
+ armnn::TensorInfo tensorInfo({ 1 }, armnn::DataType::Float32, 0.0f, 0, true);
std::vector<float> data(tensorInfo.GetNumBytes() / sizeof(float));
armnn::ConstTensor invalidTensor(tensorInfo, data);
diff --git a/src/armnn/test/OptimizerTests.cpp b/src/armnn/test/OptimizerTests.cpp
index 3cea1b540e..750e6967ad 100644
--- a/src/armnn/test/OptimizerTests.cpp
+++ b/src/armnn/test/OptimizerTests.cpp
@@ -405,7 +405,9 @@ void CreateConvolution2dGraph(Graph &graph, const unsigned int* inputShape,
armnn::TensorInfo outputInfo(4, outputShape, DataType::Float32);
std::vector<float> weightsVector(90);
- armnn::ConstTensor weights(armnn::TensorInfo(4, weightsShape, armnn::DataType::Float32), weightsVector);
+ armnn::ConstTensor weights(
+ armnn::TensorInfo(4, weightsShape, armnn::DataType::Float32, 0.0f, 0, true),
+ weightsVector);
Convolution2dDescriptor desc;
desc.m_BiasEnabled = false;
@@ -455,7 +457,9 @@ void CreateDepthwiseConvolution2dGraph(Graph &graph, const unsigned int* inputSh
armnn::TensorInfo outputInfo(4, outputShape, DataType::Float32);
std::vector<float> weightsVector(18);
- armnn::ConstTensor weights(armnn::TensorInfo(4, weightsShape, armnn::DataType::Float32), weightsVector);
+ armnn::ConstTensor weights(
+ armnn::TensorInfo(4, weightsShape, armnn::DataType::Float32, 0.0f, 0, true),
+ weightsVector);
DepthwiseConvolution2dDescriptor desc;
desc.m_BiasEnabled = false;
@@ -653,7 +657,7 @@ TEST_CASE("DetectionPostProcessValidateTensorShapes")
armnn::TensorInfo boxEncodingsInfo({1, 10, 4}, DataType::QAsymmU8);
armnn::TensorInfo scoresInfo({1, 10, 4}, DataType::QAsymmU8);
std::vector<uint8_t> anchorsVector(40);
- armnn::ConstTensor anchors(armnn::TensorInfo({10, 4}, armnn::DataType::QAsymmU8), anchorsVector);
+ armnn::ConstTensor anchors(armnn::TensorInfo({10, 4}, armnn::DataType::QAsymmU8, 0.0f, 0, true), anchorsVector);
armnn::TensorInfo detectionBoxesInfo({1, 3, 4}, DataType::QAsymmU8);
armnn::TensorInfo detectionScoresInfo({1, 3}, DataType::QAsymmU8);
@@ -833,16 +837,16 @@ TEST_CASE("OptimizeForExclusiveConnectionsFuseTest")
TensorInfo outputInfo(4, outputDimensionSizes, DataType::Float32);
std::vector<float> weightsVector = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
- ConstTensor weights(TensorInfo(4, weightsDimensionSizes, DataType::Float32), weightsVector);
+ ConstTensor weights(TensorInfo(4, weightsDimensionSizes, DataType::Float32, 0.0f, 0, true), weightsVector);
std::vector<float> betaVector = { 0.1f };
std::vector<float> gammaVector = { 0.5f };
std::vector<float> meanVector = { 0 };
std::vector<float> varianceVector = { 1 };
- ConstTensor beta(TensorInfo(1, outputChannelSize, DataType::Float32), betaVector);
- ConstTensor gamma(TensorInfo(1, outputChannelSize, DataType::Float32), gammaVector);
- ConstTensor mean(TensorInfo(1, outputChannelSize, DataType::Float32), meanVector);
- ConstTensor variance(TensorInfo(1, outputChannelSize, DataType::Float32), varianceVector);
+ ConstTensor beta(TensorInfo(1, outputChannelSize, DataType::Float32, 0.0f, 0, true), betaVector);
+ ConstTensor gamma(TensorInfo(1, outputChannelSize, DataType::Float32, 0.0f, 0, true), gammaVector);
+ ConstTensor mean(TensorInfo(1, outputChannelSize, DataType::Float32, 0.0f, 0, true), meanVector);
+ ConstTensor variance(TensorInfo(1, outputChannelSize, DataType::Float32, 0.0f, 0, true), varianceVector);
// Define the network
Graph graph;
@@ -863,7 +867,7 @@ TEST_CASE("OptimizeForExclusiveConnectionsFuseTest")
if (convolution2dDescriptor.m_BiasEnabled)
{
std::vector<float> biasVector = { 11 };
- ConstTensor bias(TensorInfo(1, outputChannelSize, DataType::Float32), biasVector);
+ ConstTensor bias(TensorInfo(1, outputChannelSize, DataType::Float32, 0.0f, 0, true), biasVector);
conv->m_Bias = std::make_unique<ScopedTensorHandle>(bias);
}
diff --git a/src/armnn/test/RuntimeTests.cpp b/src/armnn/test/RuntimeTests.cpp
index 397a545878..f055f2368b 100644
--- a/src/armnn/test/RuntimeTests.cpp
+++ b/src/armnn/test/RuntimeTests.cpp
@@ -97,8 +97,8 @@ TEST_CASE("RuntimePreImportInputs")
std::vector<int> inputData2(4, 20);
std::vector<int> output(4);
- ConstTensor inputTensor1({{4}, armnn::DataType::Signed32}, inputData1.data());
- ConstTensor inputTensor2({{4}, armnn::DataType::Signed32}, inputData2.data());
+ ConstTensor inputTensor1({{4}, armnn::DataType::Signed32, 0.0f, 0, true}, inputData1.data());
+ ConstTensor inputTensor2({{4}, armnn::DataType::Signed32, 0.0f, 0, true}, inputData2.data());
Tensor outputTensor({{4}, armnn::DataType::Signed32}, output.data());
auto importedInputVec1 = runtime->ImportInputs(networkId, {{0, inputTensor1}});
@@ -177,7 +177,7 @@ TEST_CASE("RuntimePreImportOutputs")
armnn::NetworkId networkId = 1;
armnn::INetworkPtr testNetwork(armnn::INetwork::Create());
- TensorInfo tensorInfo{{4}, armnn::DataType::Float32};
+ TensorInfo tensorInfo{{4}, armnn::DataType::Float32, 0.0f, 0, true};
auto inputLayer1 = testNetwork->AddInputLayer(0, "input 1 layer");
inputLayer1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
@@ -902,9 +902,11 @@ TEST_CASE("ProfilingEnableCpuRef")
std::vector<float> inputData(16);
std::vector<float> outputData(16);
+ TensorInfo inputTensorInfo = runtime.GetInputTensorInfo(netId, 0);
+ inputTensorInfo.SetConstant(true);
InputTensors inputTensors
{
- {0, ConstTensor(runtime.GetInputTensorInfo(netId, 0), inputData.data())}
+ {0, ConstTensor(inputTensorInfo, inputData.data())}
};
OutputTensors outputTensors
{
diff --git a/src/armnn/test/ShapeInferenceTests.cpp b/src/armnn/test/ShapeInferenceTests.cpp
index d3c928fec1..f808a0e349 100644
--- a/src/armnn/test/ShapeInferenceTests.cpp
+++ b/src/armnn/test/ShapeInferenceTests.cpp
@@ -233,14 +233,14 @@ TEST_CASE("ConcatTest")
CreateGraphAndRunTest<ConcatLayer>({{ 1, 2, 1 }, { 1, 2, 1 }}, {{ 2, 2, 1 }}, descriptor, "concat");
}
-TEST_CASE("ConstantTesst")
+TEST_CASE("ConstantTest")
{
Graph graph;
TensorShape outputShape{ 1, 1, 3, 3 };
auto layer = BuildGraph<ConstantLayer>(&graph, {}, "constant");
const float Datum = 0.0f;
- ConstTensor output0({outputShape, DataType::Float32}, &Datum);
+ ConstTensor output0({outputShape, DataType::Float32, 0.0f, 0, true}, &Datum);
layer->m_LayerOutput = std::make_unique<ScopedTensorHandle>(output0);
layer->GetOutputSlot(0).SetTensorInfo({{1, 1, 3, 3}, DataType::Float32});
@@ -294,7 +294,7 @@ TEST_CASE("Convolution2dTest")
"conv2d");
const float Datum = 0.0f;
- ConstTensor weights({{1, 1, 3, 3}, DataType::Float32}, &Datum);
+ ConstTensor weights({{1, 1, 3, 3}, DataType::Float32, 0.0f, 0, true}, &Datum);
layer->m_Weight = std::make_unique<ScopedTensorHandle>(weights);
RunShapeInferenceTest<Convolution2dLayer>(layer, {{ 1, 1, 4, 4 }});
@@ -339,7 +339,7 @@ TEST_CASE("DepthwiseConvolutionTest")
"depthwiseconv2d");
const float Datum = 0.0f;
- ConstTensor weights({{ 2, 5, 3, 2 }, DataType::Float32}, &Datum);
+ ConstTensor weights({{ 2, 5, 3, 2 }, DataType::Float32, 0.0f, 0, true}, &Datum);
layer->m_Weight = std::make_unique<ScopedTensorHandle>(weights);
RunShapeInferenceTest<DepthwiseConvolution2dLayer>(layer, {{ 8, 18, 1, 2 }});
@@ -371,7 +371,7 @@ TEST_CASE("DetectionPostProcessTest")
descriptor.m_ScaleW = 5.0;
const float Datum = 0.0f;
- ConstTensor anchorsTensor({{1, 1, 3, 3}, DataType::Float32}, &Datum);
+ ConstTensor anchorsTensor({{1, 1, 3, 3}, DataType::Float32, 0.0f, 0, true}, &Datum);
Graph graph;
@@ -460,7 +460,7 @@ TEST_CASE("LstmTest")
auto layer = BuildGraph<LstmLayer>(&graph, {inputShape, inputCellState, inputCellState}, descriptor, "lstm");
float Datum = 0.0f;
- ConstTensor constTensor({{ 2, 5, 3, 2 }, DataType::Float32}, &Datum);
+ ConstTensor constTensor({{ 2, 5, 3, 2 }, DataType::Float32, 0.0f, 0, true}, &Datum);
layer->m_BasicParameters.m_InputToCellWeights = std::make_unique<ScopedTensorHandle>(constTensor);
layer->m_BasicParameters.m_InputToForgetWeights = std::make_unique<ScopedTensorHandle>(constTensor);
@@ -548,7 +548,7 @@ TEST_CASE("QLstmTest")
auto layer = BuildGraph<QLstmLayer>(&graph, {inputShape, inputCellState, inputCellState}, descriptor, "qlstm");
float Datum = 0.0f;
- ConstTensor constTensor({{ 2, 5, 3, 2 }, DataType::Float32}, &Datum);
+ ConstTensor constTensor({{ 2, 5, 3, 2 }, DataType::Float32, 0.0f, 0, true}, &Datum);
layer->m_BasicParameters.m_InputToCellWeights = std::make_unique<ScopedTensorHandle>(constTensor);
layer->m_BasicParameters.m_InputToForgetWeights = std::make_unique<ScopedTensorHandle>(constTensor);
@@ -576,7 +576,7 @@ TEST_CASE("QuantizedLstmTest")
auto layer = BuildGraph<QuantizedLstmLayer>(&graph, {inputShape, inputCellState, inputCellState}, "quatizedlstm");
float Datum = 0.0f;
- ConstTensor constTensor({{ 2, 5, 3, 2 }, DataType::Float32}, &Datum);
+ ConstTensor constTensor({{ 2, 5, 3, 2 }, DataType::Float32, 0.0f, 0, true}, &Datum);
layer->m_QuantizedLstmParameters.m_InputToCellWeights = std::make_unique<ScopedTensorHandle>(constTensor);
layer->m_QuantizedLstmParameters.m_InputToForgetWeights = std::make_unique<ScopedTensorHandle>(constTensor);
diff --git a/src/armnn/test/TensorTest.cpp b/src/armnn/test/TensorTest.cpp
index 1ecad503d4..8d8751f614 100644
--- a/src/armnn/test/TensorTest.cpp
+++ b/src/armnn/test/TensorTest.cpp
@@ -145,18 +145,56 @@ TEST_CASE("TensorVsConstTensor")
const int immutableDatum = 3;
armnn::Tensor uninitializedTensor;
+ uninitializedTensor.GetInfo().SetConstant(true);
armnn::ConstTensor uninitializedTensor2;
uninitializedTensor2 = uninitializedTensor;
- armnn::Tensor t(TensorInfo(), &mutableDatum);
- armnn::ConstTensor ct(TensorInfo(), &immutableDatum);
+ armnn::TensorInfo emptyTensorInfo;
+ emptyTensorInfo.SetConstant(true);
+ armnn::Tensor t(emptyTensorInfo, &mutableDatum);
+ armnn::ConstTensor ct(emptyTensorInfo, &immutableDatum);
// Checks that both Tensor and ConstTensor can be passed as a ConstTensor.
CheckTensor(t);
CheckTensor(ct);
}
+TEST_CASE("ConstTensor_EmptyConstructorTensorInfoSet")
+{
+ armnn::ConstTensor t;
+ CHECK(t.GetInfo().IsConstant() == true);
+}
+
+TEST_CASE("ConstTensor_TensorInfoNotConstantError")
+{
+ armnn::TensorInfo tensorInfo ({ 1 }, armnn::DataType::Float32);
+ std::vector<float> tensorData = { 1.0f };
+ try
+ {
+ armnn::ConstTensor ct(tensorInfo, tensorData);
+ FAIL("InvalidArgumentException should have been thrown");
+ }
+ catch(const InvalidArgumentException& exc)
+ {
+ CHECK(strcmp(exc.what(), "Invalid attempt to construct ConstTensor from non-constant TensorInfo.") == 0);
+ }
+}
+
+TEST_CASE("PassTensorToConstTensor_TensorInfoNotConstantError")
+{
+ try
+ {
+ armnn::ConstTensor t = ConstTensor(Tensor());
+ FAIL("InvalidArgumentException should have been thrown");
+ }
+ catch(const InvalidArgumentException& exc)
+ {
+ CHECK(strcmp(exc.what(), "Invalid attempt to construct ConstTensor from "
+ "Tensor due to non-constant TensorInfo") == 0);
+ }
+}
+
TEST_CASE("ModifyTensorInfo")
{
TensorInfo info;
diff --git a/src/armnn/test/optimizations/AddBroadcastReshapeLayerTests.cpp b/src/armnn/test/optimizations/AddBroadcastReshapeLayerTests.cpp
index 36a4507fc3..7573005518 100644
--- a/src/armnn/test/optimizations/AddBroadcastReshapeLayerTests.cpp
+++ b/src/armnn/test/optimizations/AddBroadcastReshapeLayerTests.cpp
@@ -290,7 +290,7 @@ TEST_CASE("ReshapeParentConstLayerTest")
{
Graph graph;
const TensorInfo info0({ 1, 2, 3, 5 }, DataType::QAsymmU8);
- const TensorInfo info1({ 5 }, DataType::QAsymmU8);
+ const TensorInfo info1({ 5 }, DataType::QAsymmU8, 0.0f, 0, true);
const TensorInfo outputInfo({ 1, 2, 3, 5 }, DataType::QAsymmU8);
auto input = graph.AddLayer<InputLayer>(0, "input");
@@ -346,7 +346,7 @@ TEST_CASE("ReshapeParentConstAddLayerMultipleConnectionsTest")
// What we'll do is have two sequential add layers both using the same const tensor.
Graph graph;
const TensorInfo inputInfo({ 1, 512 }, DataType::Float32);
- const TensorInfo constantTermInfo({ 1 }, DataType::Float32);
+ const TensorInfo constantTermInfo({ 1 }, DataType::Float32, 0.0f, 0, true);
const TensorInfo outputInfo({ 1, 512 }, DataType::Float32);
auto input = graph.AddLayer<InputLayer>(0, "input");
diff --git a/src/armnn/test/optimizations/ConvertConstantsBFloatTests.cpp b/src/armnn/test/optimizations/ConvertConstantsBFloatTests.cpp
index b78a1bf207..7b326fa8bc 100644
--- a/src/armnn/test/optimizations/ConvertConstantsBFloatTests.cpp
+++ b/src/armnn/test/optimizations/ConvertConstantsBFloatTests.cpp
@@ -32,7 +32,7 @@ TEST_CASE("ConvertConstantsFloatToBFloatTest")
-3.1055E+29f, // 0xF07ADC3C Round up
-9.149516E-10f // 0xB07B7FFF Round down
};
- armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32), floatWeights);
+ armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32, 0.0f, 0, true), floatWeights);
// Create simple test network
auto input = graph.AddLayer<armnn::InputLayer>(0, "input");
@@ -88,7 +88,7 @@ TEST_CASE("ConvertConstantsBFloatToFloatTest")
std::vector<uint16_t> bfWeights(8);
armnnUtils::FloatingPointConverter::ConvertFloat32ToBFloat16(convWeightsData.data(), convWeightsData.size(),
bfWeights.data());
- armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::BFloat16), bfWeights);
+ armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::BFloat16, 0.0f, 0, true), bfWeights);
//Create the simple test network
auto input = graph.AddLayer<armnn::InputLayer>(0, "input");
diff --git a/src/armnn/test/optimizations/ConvertConstantsFloatToHalfTests.cpp b/src/armnn/test/optimizations/ConvertConstantsFloatToHalfTests.cpp
index e6cca4f7bf..f74ab0f308 100644
--- a/src/armnn/test/optimizations/ConvertConstantsFloatToHalfTests.cpp
+++ b/src/armnn/test/optimizations/ConvertConstantsFloatToHalfTests.cpp
@@ -25,7 +25,7 @@ TEST_CASE("ConvertConstantsFloatToHalfTest")
// Create const tensor from fp32 data
unsigned int dims[] = { 4, 1, 1, 1 };
std::vector<float> floatWeights{ 1.0f, 2.0f, 3.0f, 4.0f };
- armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32), floatWeights);
+ armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32, 0.0f, 0, true), floatWeights);
// Create simple test network
auto input = graph.AddLayer<armnn::InputLayer>(0, "input");
diff --git a/src/armnn/test/optimizations/ConvertConstantsHalfToFloatTests.cpp b/src/armnn/test/optimizations/ConvertConstantsHalfToFloatTests.cpp
index 2ec1279f33..c4551525c1 100644
--- a/src/armnn/test/optimizations/ConvertConstantsHalfToFloatTests.cpp
+++ b/src/armnn/test/optimizations/ConvertConstantsHalfToFloatTests.cpp
@@ -25,7 +25,7 @@ TEST_CASE("ConvertConstantsHalfToFloatTest")
std::vector<uint16_t> halfWeights(4);
armnnUtils::FloatingPointConverter::ConvertFloat32To16(convWeightsData.data(), convWeightsData.size(),
halfWeights.data());
- armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float16), halfWeights);
+ armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float16, 0.0f, 0, true), halfWeights);
//Create the simple test network
auto input = graph.AddLayer<armnn::InputLayer>(0, "input");
diff --git a/src/armnn/test/optimizations/FoldPadTests.cpp b/src/armnn/test/optimizations/FoldPadTests.cpp
index 11f09e80e0..a598983706 100644
--- a/src/armnn/test/optimizations/FoldPadTests.cpp
+++ b/src/armnn/test/optimizations/FoldPadTests.cpp
@@ -45,7 +45,7 @@ TEST_CASE("FoldPadLayerIntoConvolution2dLayer")
convolution2dDescriptor.m_DataLayout = DataLayout::NHWC;
std::vector<float> weightsVector(18);
- ConstTensor weights(TensorInfo(4, weightsShape, DataType::Float32), weightsVector);
+ ConstTensor weights(TensorInfo(4, weightsShape, DataType::Float32, 0.0f, 0, true), weightsVector);
Convolution2dLayer* conv2dLayer = graph.AddLayer<Convolution2dLayer>(convolution2dDescriptor, "conv2d");
conv2dLayer->m_Weight = std::make_unique<ScopedTensorHandle>(weights);
@@ -122,7 +122,7 @@ TEST_CASE("FoldPadLayerIntoDepthwiseConvolution2dLayer")
depthwiseConvolution2dDescriptor.m_DataLayout = DataLayout::NHWC;
std::vector<float> weightsVector(18);
- ConstTensor weights(TensorInfo(4, weightsShape, DataType::Float32), weightsVector);
+ ConstTensor weights(TensorInfo(4, weightsShape, DataType::Float32, 0.0f, 0, true), weightsVector);
auto* depthwiseConv2dLayer = graph.AddLayer<DepthwiseConvolution2dLayer>(depthwiseConvolution2dDescriptor,
"depthwiseConv2d");
@@ -526,7 +526,9 @@ TEST_CASE("FoldPadLayerIntoPooling2dLayer_ExecuteInferenceWithAndWithoutOptimiza
NetworkId networkIdentifier;
CHECK(run->LoadNetwork(networkIdentifier, std::move(optimizedNetwork)) == Status::Success);
- InputTensors inputTensors{{0, ConstTensor(run->GetInputTensorInfo(networkIdentifier, 0), inputData.data())}};
+ TensorInfo inputTensorInfo = run->GetInputTensorInfo(networkIdentifier, 0);
+ inputTensorInfo.SetConstant(true);
+ InputTensors inputTensors{{0, ConstTensor(inputTensorInfo, inputData.data())}};
// Set the initial values of the data to different values to the golden data just in case the inference fails.
std::vector<float> optimizedData(32, -std::numeric_limits<float>::infinity());
@@ -614,10 +616,10 @@ TEST_CASE("FoldPadLayerIntoConv2dLayer_ExecuteInferenceWithAndWithoutOptimizatio
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42};
- TensorInfo weightsInfo(4, weightsShape, DataType::Float32);
+ TensorInfo weightsInfo(4, weightsShape, DataType::Float32, 0.0f, 0, true);
ConstTensor weights(weightsInfo, weightsData);
std::vector<float> biasVector = {5, 6, 7, 8};
- TensorInfo biasInfo({4}, DataType::Float32);
+ TensorInfo biasInfo({4}, DataType::Float32, 0.0f, 0, true);
ConstTensor bias(biasInfo, biasVector);
Optional<ConstTensor> optionalBias = Optional<ConstTensor>(bias);
@@ -644,7 +646,9 @@ TEST_CASE("FoldPadLayerIntoConv2dLayer_ExecuteInferenceWithAndWithoutOptimizatio
NetworkId networkIdentifier;
CHECK(run->LoadNetwork(networkIdentifier, std::move(optimizedNetwork)) == Status::Success);
- InputTensors inputTensors{{0, ConstTensor(run->GetInputTensorInfo(networkIdentifier, 0), inputData.data())}};
+ TensorInfo inputTensorInfo = run->GetInputTensorInfo(networkIdentifier, 0);
+ inputTensorInfo.SetConstant(true);
+ InputTensors inputTensors{{0, ConstTensor(inputTensorInfo, inputData.data())}};
// Set the initial values of the data to different values to the golden data just in case the inference fails.
std::vector<float> optimizedData(100, -std::numeric_limits<float>::infinity());
@@ -732,10 +736,10 @@ TEST_CASE("FoldPadLayerIntoDepthwiseConv2dLayer_ExecuteInferenceWithAndWithoutOp
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42};
- TensorInfo weightsInfo(4, weightsShape, DataType::Float32);
+ TensorInfo weightsInfo(4, weightsShape, DataType::Float32, 0.0f, 0, true);
ConstTensor weights(weightsInfo, weightsData);
std::vector<float> biasVector = {5, 6, 7, 8, 9, 10, 11, 12, 5, 6, 7, 8};
- TensorInfo biasInfo({12}, DataType::Float32);
+ TensorInfo biasInfo({12}, DataType::Float32, 0.0f, 0, true);
ConstTensor bias(biasInfo, biasVector);
Optional<ConstTensor> optionalBias = Optional<ConstTensor>(bias);
@@ -762,7 +766,9 @@ TEST_CASE("FoldPadLayerIntoDepthwiseConv2dLayer_ExecuteInferenceWithAndWithoutOp
NetworkId networkIdentifier;
CHECK(run->LoadNetwork(networkIdentifier, std::move(optimizedNetwork)) == Status::Success);
- InputTensors inputTensors{{0, ConstTensor(run->GetInputTensorInfo(networkIdentifier, 0), inputData.data())}};
+ TensorInfo inputTensorInfo = run->GetInputTensorInfo(networkIdentifier, 0);
+ inputTensorInfo.SetConstant(true);
+ InputTensors inputTensors{{0, ConstTensor(inputTensorInfo, inputData.data())}};
// Set the initial values of the data to different values to the golden data just in case the inference fails.
std::vector<float> optimizedData(300, -std::numeric_limits<float>::infinity());
diff --git a/src/armnn/test/optimizations/Fp32NetworkToBf16ConverterTests.cpp b/src/armnn/test/optimizations/Fp32NetworkToBf16ConverterTests.cpp
index 384b14c0cf..63cd170f02 100644
--- a/src/armnn/test/optimizations/Fp32NetworkToBf16ConverterTests.cpp
+++ b/src/armnn/test/optimizations/Fp32NetworkToBf16ConverterTests.cpp
@@ -59,12 +59,12 @@ TEST_CASE("Fp32NetworkToBf16OptimizationConv2DTest")
-3.1055E+29f, // 0xF07ADC3C Round up
-9.149516E-10f // 0xB07B7FFF Round down
};
- armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32), floatWeights);
+ armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32, 0.0f, 0, true), floatWeights);
// Create const bias fp32 data
unsigned int biasDims[] {4};
std::vector<float> floatBias{ 1.0f, 2.0f, 3.0f, 4.0f };
- armnn::ConstTensor bias(armnn::TensorInfo(1, biasDims, armnn::DataType::Float32), floatBias);
+ armnn::ConstTensor bias(armnn::TensorInfo(1, biasDims, armnn::DataType::Float32, 0.0f, 0, true), floatBias);
// A network with Convolution2d layer
auto input = graph.AddLayer<armnn::InputLayer>(0, "input");
@@ -129,12 +129,12 @@ TEST_CASE("Fp32NetworkToBf16OptimizationFullyConnectedTest")
-3.1055E+29f, // 0xF07ADC3C Round up
-9.149516E-10f // 0xB07B7FFF Round down
};
- armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32), floatWeights);
+ armnn::ConstTensor weights(armnn::TensorInfo(4, dims, armnn::DataType::Float32, 0.0f, 0, true), floatWeights);
// Create const bias fp32 data
unsigned int biasDims[] {4};
std::vector<float> floatBias{ 1.0f, 2.0f, 3.0f, 4.0f };
- armnn::ConstTensor bias(armnn::TensorInfo(1, biasDims, armnn::DataType::Float32), floatBias);
+ armnn::ConstTensor bias(armnn::TensorInfo(1, biasDims, armnn::DataType::Float32, 0.0f, 0, true), floatBias);
// A network with FullyConnected layer
auto input = graph.AddLayer<armnn::InputLayer>(0, "input");
diff --git a/src/armnn/test/optimizations/FuseActivationTests.cpp b/src/armnn/test/optimizations/FuseActivationTests.cpp
index 2352a3c498..54a9d9a189 100644
--- a/src/armnn/test/optimizations/FuseActivationTests.cpp
+++ b/src/armnn/test/optimizations/FuseActivationTests.cpp
@@ -66,7 +66,7 @@ struct Convolution2dTest
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42};
std::vector<T> weightsVector = armnnUtils::QuantizedVector<T>(weightsData, scale, offset);
- TensorInfo weightsInfo(GetWeightsShape(), ArmnnType, scale, offset);
+ TensorInfo weightsInfo(GetWeightsShape(), ArmnnType, scale, offset, true);
ConstTensor weights(weightsInfo, weightsVector);
Optional<ConstTensor> optionalBias;
@@ -115,7 +115,7 @@ public:
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42};
std::vector<T> weightsVector = armnnUtils::QuantizedVector<T>(weightsData, scale, offset);
- TensorInfo weightsInfo(GetWeightsShape(), ArmnnType, scale, offset);
+ TensorInfo weightsInfo(GetWeightsShape(), ArmnnType, scale, offset, true);
ConstTensor weights(weightsInfo, weightsVector);
Optional<ConstTensor> optionalBias;
@@ -212,10 +212,10 @@ public:
std::vector<T> varianceVector = GetVector<T>(GetOutputShape()[3], 1.0f, 0.1f);
const unsigned int outputChannelSize[] = { GetOutputShape()[3] };
- ConstTensor beta(TensorInfo(1, outputChannelSize, ArmnnType), betaVector);
- ConstTensor gamma(TensorInfo(1, outputChannelSize, ArmnnType), gammaVector);
- ConstTensor mean(TensorInfo(1, outputChannelSize, ArmnnType), meanVector);
- ConstTensor variance(TensorInfo(1, outputChannelSize, ArmnnType), varianceVector);
+ ConstTensor beta(TensorInfo(1, outputChannelSize, ArmnnType, 0.0f, 0, true), betaVector);
+ ConstTensor gamma(TensorInfo(1, outputChannelSize, ArmnnType, 0.0f, 0, true), gammaVector);
+ ConstTensor mean(TensorInfo(1, outputChannelSize, ArmnnType, 0.0f, 0, true), meanVector);
+ ConstTensor variance(TensorInfo(1, outputChannelSize, ArmnnType, 0.0f, 0, true), varianceVector);
return network->AddBatchNormalizationLayer(descriptor, mean, variance, beta, gamma, name);
}
@@ -491,8 +491,11 @@ void FuseActivationIntoPreviousLayerTest(ActivationDescriptor activationDescript
std::vector<T> inputDataFused = armnnUtils::QuantizedVector<T>(data, scale, offset);
std::vector<T> outputDataFused(LayerTest::outputSize);
+ armnn::TensorInfo inputTensorInfo = run->GetInputTensorInfo(networkIdentifier, 0);
+ inputTensorInfo.SetConstant(true);
+
InputTensors inputTensorsFused{
- {0, ConstTensor(run->GetInputTensorInfo(networkIdentifier, 0), inputDataFused.data())}};
+ {0, ConstTensor(inputTensorInfo, inputDataFused.data())}};
OutputTensors outputTensorsFused{
{0, Tensor(run->GetOutputTensorInfo(networkIdentifier, 0), outputDataFused.data())}};
@@ -545,8 +548,11 @@ void FuseActivationIntoPreviousLayerTest(ActivationDescriptor activationDescript
std::vector<T> outputDataNotFused(LayerTest::outputSize);
std::vector<T> outputData2NotFused(LayerTest::outputSize);
+ TensorInfo inputTensorInfoNotFused = runNotFused->GetInputTensorInfo(networkIdentifierNotFused, 0);
+ inputTensorInfoNotFused.SetConstant(true);
+
InputTensors inputTensorsNotFused{
- {0, ConstTensor(runNotFused->GetInputTensorInfo(networkIdentifierNotFused, 0), inputDataNotFused.data())}};
+ {0, ConstTensor(inputTensorInfoNotFused, inputDataNotFused.data())}};
OutputTensors outputTensorsNotFused{
{0, Tensor(runNotFused->GetOutputTensorInfo(networkIdentifierNotFused, 0), outputDataNotFused.data())},
{1, Tensor(runNotFused->GetOutputTensorInfo(networkIdentifierNotFused, 1), outputData2NotFused.data())}};
@@ -591,8 +597,11 @@ bool FuseActivationSimpleTest(ActivationDescriptor activationDescriptor, Compute
std::vector<T> inputDataFused = armnnUtils::QuantizedVector<T>(data, scale, offset);
std::vector<T> outputDataFused(LayerTest::outputSize);
+ TensorInfo inputTensorInfo = run->GetInputTensorInfo(networkIdentifier, 0);
+ inputTensorInfo.SetConstant(true);
+
InputTensors inputTensorsFused{
- {0, ConstTensor(run->GetInputTensorInfo(networkIdentifier, 0), inputDataFused.data())}};
+ {0, ConstTensor(inputTensorInfo, inputDataFused.data())}};
OutputTensors outputTensorsFused{
{0, Tensor(run->GetOutputTensorInfo(networkIdentifier, 0), outputDataFused.data())}};
diff --git a/src/armnn/test/optimizations/FuseBatchNormTests.cpp b/src/armnn/test/optimizations/FuseBatchNormTests.cpp
index 20d2940b81..0e969c1a5c 100644
--- a/src/armnn/test/optimizations/FuseBatchNormTests.cpp
+++ b/src/armnn/test/optimizations/FuseBatchNormTests.cpp
@@ -107,11 +107,11 @@ INetworkPtr CreatNetwork(bool depthwise, bool preventFusing)
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42};
std::vector<T> weightsVector(begin(weightsIntVector), end(weightsIntVector));
- TensorInfo weightsInfo(4, weightsDimensionSizes, ArmnnType);
+ TensorInfo weightsInfo(4, weightsDimensionSizes, ArmnnType, 0.0f, 0, true);
ConstTensor weights(weightsInfo, weightsVector);
std::vector<T> biasVector = GetVector<T>(outputDimensionSizes[3], 3.3f, 0.1f);
- TensorInfo biasInfo(1, outputChannelSize, ArmnnType);
+ TensorInfo biasInfo(1, outputChannelSize, ArmnnType, 0.0f, 0, true);
ConstTensor bias(biasInfo, biasVector);
Optional<ConstTensor> optionalBias = Optional<ConstTensor>(bias);
@@ -120,10 +120,10 @@ INetworkPtr CreatNetwork(bool depthwise, bool preventFusing)
std::vector<T> meanVector = GetVector<T>(outputDimensionSizes[3], 0.1f, 0.1f);
std::vector<T> varianceVector = GetVector<T>(outputDimensionSizes[3], 1.0f, 0.1f);
- ConstTensor beta (TensorInfo(1, outputChannelSize, ArmnnType), betaVector);
- ConstTensor gamma (TensorInfo(1, outputChannelSize, ArmnnType), gammaVector);
- ConstTensor mean (TensorInfo(1, outputChannelSize, ArmnnType), meanVector);
- ConstTensor variance(TensorInfo(1, outputChannelSize, ArmnnType), varianceVector);
+ ConstTensor beta (TensorInfo(1, outputChannelSize, ArmnnType, 0.0f, 0, true), betaVector);
+ ConstTensor gamma (TensorInfo(1, outputChannelSize, ArmnnType, 0.0f, 0, true), gammaVector);
+ ConstTensor mean (TensorInfo(1, outputChannelSize, ArmnnType, 0.0f, 0, true), meanVector);
+ ConstTensor variance(TensorInfo(1, outputChannelSize, ArmnnType, 0.0f, 0, true), varianceVector);
// Create a network
INetworkPtr network = INetwork::Create();
@@ -215,8 +215,10 @@ void FuseBatchNormIntoConvTest(bool depthwise, float tolerance, armnn::Compute b
outputDataFused.resize(108);
}
+ TensorInfo inputTensorInfo = run->GetInputTensorInfo(networkIdentifier, 0);
+ inputTensorInfo.SetConstant(true);
InputTensors inputTensorsFused {
- {0, ConstTensor(run->GetInputTensorInfo (networkIdentifier, 0), inputDataFused.data())}};
+ {0, ConstTensor(inputTensorInfo, inputDataFused.data())}};
OutputTensors outputTensorsFused{
{0, Tensor(run->GetOutputTensorInfo(networkIdentifier, 0), outputDataFused.data())}};
@@ -259,8 +261,11 @@ void FuseBatchNormIntoConvTest(bool depthwise, float tolerance, armnn::Compute b
outputDataNotFused.resize(108);
outputData2NotFused.resize(108);
}
+
+ TensorInfo inputTensorInfo2 = runNotFused->GetInputTensorInfo(networkIdentifierNotFused, 0);
+ inputTensorInfo2.SetConstant(true);
InputTensors inputTensorsNotFused{
- {0, ConstTensor(runNotFused->GetInputTensorInfo(networkIdentifierNotFused, 0), inputDataNotFused.data())}};
+ {0, ConstTensor(inputTensorInfo2, inputDataNotFused.data())}};
OutputTensors outputTensorsNotFused{
{0, Tensor(runNotFused->GetOutputTensorInfo(networkIdentifierNotFused, 0), outputDataNotFused.data())},
{1, Tensor(runNotFused->GetOutputTensorInfo(networkIdentifierNotFused, 1), outputData2NotFused.data())}};
diff --git a/src/armnn/test/optimizations/PermuteAndBatchToSpaceAsDepthToSpaceTests.cpp b/src/armnn/test/optimizations/PermuteAndBatchToSpaceAsDepthToSpaceTests.cpp
index e91e16f132..f862315220 100644
--- a/src/armnn/test/optimizations/PermuteAndBatchToSpaceAsDepthToSpaceTests.cpp
+++ b/src/armnn/test/optimizations/PermuteAndBatchToSpaceAsDepthToSpaceTests.cpp
@@ -232,7 +232,7 @@ TEST_CASE("PermuteAndBatchToSpaceAsDepthToSpaceCorrectnessTest")
-1.0f, -2.0f, -3.0f, -4.0f, -10.0f, -20.0f, -30.0f, -40.0f, -100.0f, -200.0f, -300.0f, -400.0f,
// clang-format on
};
- ConstTensor input(TensorInfo({ 1, 2, 3, 4 }, DataType::Float32), inputData);
+ ConstTensor input(TensorInfo({ 1, 2, 3, 4 }, DataType::Float32, 0.0f, 0, true), inputData);
InputTensors inputs = { { 0, input } };
std::vector<float> outputData(4 * 6);
Tensor output(TensorInfo({ 1, 4, 6, 1 }, DataType::Float32), outputData.data());
@@ -279,7 +279,7 @@ TEST_CASE("TransposeAndBatchToSpaceAsDepthToSpaceCorrectnessTest")
-1.0f, -2.0f, -3.0f, -4.0f, -10.0f, -20.0f, -30.0f, -40.0f, -100.0f, -200.0f, -300.0f, -400.0f,
// clang-format on
};
- ConstTensor input(TensorInfo({ 1, 2, 3, 4 }, DataType::Float32), inputData);
+ ConstTensor input(TensorInfo({ 1, 2, 3, 4 }, DataType::Float32, 0.0f, 0, true), inputData);
InputTensors inputs = { { 0, input } };
std::vector<float> outputData(4 * 6);
Tensor output(TensorInfo({ 1, 4, 6, 1 }, DataType::Float32), outputData.data());
diff --git a/src/armnn/test/optimizations/ReduceMultipleAxesTests.cpp b/src/armnn/test/optimizations/ReduceMultipleAxesTests.cpp
index 0be8857224..692f371356 100644
--- a/src/armnn/test/optimizations/ReduceMultipleAxesTests.cpp
+++ b/src/armnn/test/optimizations/ReduceMultipleAxesTests.cpp
@@ -94,9 +94,11 @@ void ReduceWithMultipleAxesTest(INetworkPtr& network,
// Create input and output tensors
std::vector<float> outputData(expectedOutput.size());
+ armnn::TensorInfo inputTensorInfo = run->GetInputTensorInfo(networkIdentifier, 0);
+ inputTensorInfo.SetConstant(true);
InputTensors inputTensors
{
- {0, armnn::ConstTensor(run->GetInputTensorInfo(networkIdentifier, 0), inputData.data())}
+ {0, armnn::ConstTensor(inputTensorInfo, inputData.data())}
};
OutputTensors outputTensors
{