fraug/augmenters/
resize.rs1use super::base::Augmenter;
2use tracing::{info_span};
3pub struct Resize {
7 pub name: String,
8 pub size: usize,
10 p: f64,
11}
12
13impl Resize {
14 pub fn new(size: usize) -> Self {
16 Resize {
17 name: "Resize".to_string(),
18 size,
19 p: 1.0,
20 }
21 }
22}
23
24impl Augmenter for Resize {
25 fn augment_one(&self, x: &[f64]) -> Vec<f64> {
26 let span = info_span!("", step = "augment_one");
27 let _enter = span.enter();
28
29 let ratio = x.len() as f64 / self.size as f64;
30 (0..self.size)
31 .map(|i| x[(i as f64 * ratio) as usize])
32 .collect()
33 }
34
35 fn get_probability(&self) -> f64 {
36 self.p
37 }
38
39 fn set_probability(&mut self, probability: f64) {
40 self.p = probability;
41 }
42
43 fn get_name(&self) ->String {
44 self.name.clone()
45 }
46}