value property

  1. @override
dynamic get value
override

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.');
    }
  }
}