Adding size checking when creating a tensor from buffer + shape.

This commit is contained in:
Nicolas Patry
2023-06-22 13:08:57 +02:00
parent a8b6c848e0
commit 449af49b54
2 changed files with 11 additions and 1 deletions

View File

@ -151,7 +151,11 @@ impl Tensor {
device: &Device,
is_variable: bool,
) -> Result<Self> {
// let shape = array.shape()?;
let n: usize = shape.0.iter().product();
let buffer_size: usize = array.shape()?.0.iter().product();
if buffer_size != n {
return Err(Error::ShapeMismatch { buffer_size, shape });
}
let storage = device.storage(array)?;
let stride = shape.stride_contiguous();
let tensor_ = Tensor_ {