Implementation
@override
dynamic get value {
if (_info._dimensionsCount == 0) {
// scalar tensor
switch (_info._tensorElementType) {
case ONNXTensorElementDataType.uint8:
case ONNXTensorElementDataType.int8:
case ONNXTensorElementDataType.uint16:
case ONNXTensorElementDataType.int16:
case ONNXTensorElementDataType.uint32:
case ONNXTensorElementDataType.int32:
case ONNXTensorElementDataType.uint64:
case ONNXTensorElementDataType.int64:
case ONNXTensorElementDataType.float:
case ONNXTensorElementDataType.double:
return _getNumList(_ptr)[0];
case ONNXTensorElementDataType.bool:
return _getBoolList(_ptr)[0];
case ONNXTensorElementDataType.string:
return _getStringList(_ptr)[0];
default:
throw Exception('Extracting the value of an invalid Tensor.');
}
} else {
// vector tensor
switch (_info._tensorElementType) {
case ONNXTensorElementDataType.uint8:
case ONNXTensorElementDataType.int8:
case ONNXTensorElementDataType.uint16:
case ONNXTensorElementDataType.int16:
case ONNXTensorElementDataType.uint32:
case ONNXTensorElementDataType.int32:
case ONNXTensorElementDataType.uint64:
case ONNXTensorElementDataType.int64:
return _getNumList(_ptr).reshape<int>(_info._tensorShape);
case ONNXTensorElementDataType.float:
case ONNXTensorElementDataType.double:
return _getNumList(_ptr).reshape<double>(_info._tensorShape);
case ONNXTensorElementDataType.bool:
return _getBoolList(_ptr).reshape<bool>(_info._tensorShape);
case ONNXTensorElementDataType.string:
return _getStringList(_ptr).reshape<String>(_info._tensorShape);
default:
throw Exception('Extracting the value of an invalid Tensor.');
}
}
}