File size: 1,804 Bytes
3de1ebe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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_



@ExperimentRegistry.register(name="qwen_activations")
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