Spaces:
Running
on
Zero
Running
on
Zero
| import pandas as pd | |
| from collections import OrderedDict | |
| from PIL import Image | |
| from torchao.quantization import Float8DynamicActivationFloat8WeightConfig, Float8WeightOnlyConfig, Int4WeightOnlyConfig, Int8DynamicActivationInt8WeightConfig, Int8WeightOnlyConfig, ModuleFqnToConfig, PerRow | |
| from qwenimage.debug import ctimed, ftimed | |
| from qwenimage.experiment import ExperimentConfig | |
| from qwenimage.experiments.experiments_qwen import ExperimentRegistry, QwenBaseExperiment | |
| from qwenimage.models.attention_processors import QwenDoubleStreamAttnProcessorFA3 | |
| from qwenimage.optimization import optimize_pipeline_ | |
| class Qwen_Activations(QwenBaseExperiment): | |
| def run(self): | |
| output_save_dir = self.config.report_dir / f"{self.config.name}_outputs" | |
| output_save_dir.mkdir(parents=True, exist_ok=True) | |
| self.pipe.transformer.start_recording_activations() | |
| for i in range(self.config.iterations): | |
| inputs = self.pipe_inputs[i] | |
| with ctimed("run_once"): | |
| output = self.run_once(**inputs) | |
| output.save(output_save_dir / f"{i:03d}.jpg") | |
| def report(self): | |
| act_report = self.pipe.transformer.end_recording_activations() | |
| print(act_report) | |
| act_means, act_maxs = act_report | |
| all_names = list(act_means.keys()) | |
| print(all_names) | |
| data = [] | |
| for name in all_names: | |
| actmean = act_means[name] | |
| actmax = act_maxs[name] | |
| data.append({ | |
| 'name': name, | |
| 'mean': actmean, | |
| 'max': actmax, | |
| }) | |
| df = pd.DataFrame(data) | |
| df.to_csv(self.config.report_dir/f"transformer_activations.csv") | |
| return df, act_report | |