in torchaudio/csrc/sox/utils.cpp [102:121]
void validate_input_tensor(const torch::Tensor tensor) {
if (!tensor.device().is_cpu()) {
throw std::runtime_error("Input tensor has to be on CPU.");
}
if (tensor.ndimension() != 2) {
throw std::runtime_error("Input tensor has to be 2D.");
}
switch (tensor.dtype().toScalarType()) {
case c10::ScalarType::Byte:
case c10::ScalarType::Short:
case c10::ScalarType::Int:
case c10::ScalarType::Float:
break;
default:
throw std::runtime_error(
"Input tensor has to be one of float32, int32, int16 or uint8 type.");
}
}