torsh_cli/commands/model/
args.rs1use clap::Args;
4use std::path::PathBuf;
5
6#[derive(Debug, Args)]
8pub struct ConvertArgs {
9 #[arg(short, long)]
11 pub input: PathBuf,
12
13 #[arg(short, long)]
15 pub output: PathBuf,
16
17 #[arg(short, long)]
19 pub format: String,
20
21 #[arg(long, default_value = "1")]
23 pub optimization_level: u8,
24
25 #[arg(long)]
27 pub preserve_metadata: bool,
28
29 #[arg(long, default_value = "cpu")]
31 pub target_device: String,
32
33 #[arg(long)]
35 pub verbose: bool,
36}
37
38#[derive(Debug, Args)]
40pub struct OptimizeArgs {
41 #[arg(short, long)]
43 pub input: PathBuf,
44
45 #[arg(short, long)]
47 pub output: PathBuf,
48
49 #[arg(long, default_value = "2")]
51 pub level: u8,
52
53 #[arg(long, default_value = "cpu")]
55 pub target: String,
56
57 #[arg(long)]
59 pub fusion: bool,
60
61 #[arg(long)]
63 pub constant_folding: bool,
64
65 #[arg(long)]
67 pub dead_code_elimination: bool,
68
69 #[arg(long)]
71 pub memory_optimization: bool,
72}
73
74#[derive(Debug, Args)]
76pub struct QuantizeArgs {
77 #[arg(short, long)]
79 pub input: PathBuf,
80
81 #[arg(short, long)]
83 pub output: PathBuf,
84
85 #[arg(short, long, default_value = "dynamic")]
87 pub method: String,
88
89 #[arg(long, default_value = "int8")]
91 pub precision: String,
92
93 #[arg(long)]
95 pub calibration_data: Option<PathBuf>,
96
97 #[arg(long, default_value = "100")]
99 pub calibration_samples: usize,
100
101 #[arg(long, default_value = "0.95")]
103 pub accuracy_threshold: f64,
104}
105
106#[derive(Debug, Args)]
108pub struct PruneArgs {
109 #[arg(short, long)]
111 pub input: PathBuf,
112
113 #[arg(short, long)]
115 pub output: PathBuf,
116
117 #[arg(short, long, default_value = "magnitude")]
119 pub method: String,
120
121 #[arg(short, long, default_value = "0.5")]
123 pub sparsity: f64,
124
125 #[arg(long)]
127 pub structured: bool,
128
129 #[arg(long, default_value = "10")]
131 pub finetune_epochs: usize,
132
133 #[arg(long)]
135 pub validation_data: Option<PathBuf>,
136}
137
138#[derive(Debug, Args)]
140pub struct InspectArgs {
141 #[arg(short, long)]
143 pub input: PathBuf,
144
145 #[arg(long)]
147 pub detailed: bool,
148
149 #[arg(long)]
151 pub stats: bool,
152
153 #[arg(long)]
155 pub memory: bool,
156
157 #[arg(long)]
159 pub complexity: bool,
160
161 #[arg(long)]
163 pub export: Option<PathBuf>,
164}
165
166#[derive(Debug, Args)]
168pub struct ValidateArgs {
169 #[arg(short, long)]
171 pub input: PathBuf,
172
173 #[arg(short, long)]
175 pub dataset: PathBuf,
176
177 #[arg(short, long, default_value = "1000")]
179 pub samples: usize,
180
181 #[arg(long, default_value = "cpu")]
183 pub device: String,
184
185 #[arg(long, default_value = "32")]
187 pub batch_size: usize,
188
189 #[arg(long, default_value = "0.9")]
191 pub accuracy_threshold: f64,
192}
193
194#[derive(Debug, Args)]
196pub struct BenchmarkArgs {
197 #[arg(short, long)]
199 pub input: PathBuf,
200
201 #[arg(long, default_value = "cpu")]
203 pub device: String,
204
205 #[arg(long, value_delimiter = ',')]
207 pub input_shape: Vec<usize>,
208
209 #[arg(long, value_delimiter = ',', default_values = ["1", "4", "8", "16"])]
211 pub batch_sizes: Vec<usize>,
212
213 #[arg(long, default_value = "10")]
215 pub warmup: usize,
216
217 #[arg(long, default_value = "100")]
219 pub iterations: usize,
220
221 #[arg(long)]
223 pub profile_memory: bool,
224
225 #[arg(long)]
227 pub export: Option<PathBuf>,
228}
229
230#[derive(Debug, Args)]
232pub struct CompressArgs {
233 #[arg(short, long)]
235 pub input: PathBuf,
236
237 #[arg(short, long)]
239 pub output: PathBuf,
240
241 #[arg(short, long, default_value = "gzip")]
243 pub algorithm: String,
244
245 #[arg(long, default_value = "6")]
247 pub level: u8,
248}
249
250#[derive(Debug, Args)]
252pub struct ExtractArgs {
253 #[arg(short, long)]
255 pub input: PathBuf,
256
257 #[arg(short = 'x', long)]
259 pub component: String,
260
261 #[arg(short, long)]
263 pub output: PathBuf,
264}
265
266#[derive(Debug, Args)]
268pub struct MergeArgs {
269 #[arg(short, long)]
271 pub inputs: Vec<PathBuf>,
272
273 #[arg(short, long)]
275 pub output: PathBuf,
276
277 #[arg(short, long, default_value = "average")]
279 pub strategy: String,
280
281 #[arg(long, value_delimiter = ',')]
283 pub weights: Vec<f64>,
284}