Adds TENSOR_FLOAT16 operand type.

Bug: 113563458
Test: VtsHalNeuralnetworksV1_2TargetTest --hal_service_instance=android.hardware.neuralnetworks@1.2::IDevice/sample-all
Change-Id: If12ceff428e1b1a90ef99b7353f0df60d4ef8010
Merged-In: If12ceff428e1b1a90ef99b7353f0df60d4ef8010
(cherry picked from commit 19d63453d4)
This commit is contained in:
Michael K. Sanders
2018-10-12 09:10:15 +01:00
committed by Przemyslaw Szczepaniak
parent 68c8c17467
commit 5dd841253d
2 changed files with 6 additions and 0 deletions

View File

@@ -42,6 +42,8 @@ enum OperandType : @1.0::OperandType {
* realValue = (integerValue - zeroPoint) * scale.
*/
TENSOR_QUANT16_ASYMM = 7,
/** A tensor of 16 bit floating point values. */
TENSOR_FLOAT16 = 8,
};
/**

View File

@@ -157,6 +157,7 @@ static uint32_t getInvalidRank(OperandType type) {
case OperandType::UINT32:
case OperandType::BOOL:
return 1;
case OperandType::TENSOR_FLOAT16:
case OperandType::TENSOR_FLOAT32:
case OperandType::TENSOR_INT32:
case OperandType::TENSOR_QUANT8_ASYMM:
@@ -186,6 +187,7 @@ static float getInvalidScale(OperandType type) {
case OperandType::INT32:
case OperandType::UINT32:
case OperandType::BOOL:
case OperandType::TENSOR_FLOAT16:
case OperandType::TENSOR_FLOAT32:
return 1.0f;
case OperandType::TENSOR_INT32:
@@ -217,6 +219,7 @@ static std::vector<int32_t> getInvalidZeroPoints(OperandType type) {
case OperandType::INT32:
case OperandType::UINT32:
case OperandType::BOOL:
case OperandType::TENSOR_FLOAT16:
case OperandType::TENSOR_FLOAT32:
case OperandType::TENSOR_INT32:
return {1};
@@ -262,6 +265,7 @@ static void mutateOperand(Operand* operand, OperandType type) {
newOperand.scale = 0.0f;
newOperand.zeroPoint = 0;
break;
case OperandType::TENSOR_FLOAT16:
case OperandType::TENSOR_FLOAT32:
newOperand.dimensions =
operand->dimensions.size() > 0 ? operand->dimensions : hidl_vec<uint32_t>({1});