Add some epsilon tolerance to grad tests so that they work on cuda / mkl. (#213)

This commit is contained in:
Laurent Mazare
2023-07-21 13:45:14 +02:00
committed by GitHub
parent 410654525f
commit b02229ce92
3 changed files with 30 additions and 8 deletions

View File

@ -20,6 +20,23 @@ macro_rules! test_device {
};
}
pub fn to_vec1_round(t: &Tensor, digits: i32) -> Result<Vec<f32>> {
let b = 10f32.powi(digits);
let t = t.to_vec1::<f32>()?;
let t = t.iter().map(|t| f32::round(t * b) / b).collect();
Ok(t)
}
pub fn to_vec2_round(t: &Tensor, digits: i32) -> Result<Vec<Vec<f32>>> {
let b = 10f32.powi(digits);
let t = t.to_vec2::<f32>()?;
let t = t
.iter()
.map(|t| t.iter().map(|t| f32::round(t * b) / b).collect())
.collect();
Ok(t)
}
pub fn to_vec3_round(t: Tensor, digits: i32) -> Result<Vec<Vec<Vec<f32>>>> {
let b = 10f32.powi(digits);
let t = t.to_vec3::<f32>()?;