pub fn tensor_data_to_f32(data: burn::tensor::TensorData) -> Vec<f32> {
if let Ok(v) = data.to_vec::<f32>() {
return v;
}
let converted = data.clone().convert::<f32>();
if let Ok(v) = converted.to_vec::<f32>() {
return v;
}
let bytes = &data.bytes;
if bytes.len() % 2 == 0 {
return bytes
.chunks_exact(2)
.map(|c| half::f16::from_le_bytes([c[0], c[1]]).to_f32())
.collect();
}
panic!("cannot convert tensor data ({} bytes) to f32", bytes.len());
}