1#[derive(Clone, Debug)]
6pub struct TabIclConfig {
7 pub max_classes: usize, pub embed_dim: usize, pub col_num_blocks: usize, pub col_nhead: usize, pub col_num_inds: usize, pub feature_group_size: usize, pub row_num_blocks: usize, pub row_nhead: usize, pub row_num_cls: usize, pub row_rope_base: f64, pub icl_num_blocks: usize, pub icl_nhead: usize, pub ff_factor: usize, }
21
22impl TabIclConfig {
23 pub fn v2() -> Self {
24 Self {
25 max_classes: 10,
26 embed_dim: 128,
27 col_num_blocks: 3,
28 col_nhead: 8,
29 col_num_inds: 128,
30 feature_group_size: 3,
31 row_num_blocks: 3,
32 row_nhead: 8,
33 row_num_cls: 4,
34 row_rope_base: 100_000.0,
35 icl_num_blocks: 12,
36 icl_nhead: 8,
37 ff_factor: 2,
38 }
39 }
40
41 pub fn icl_dim(&self) -> usize {
42 self.embed_dim * self.row_num_cls
43 }
44}