shunk031 commited on
Commit
96590b2
·
1 Parent(s): f79e545

deploy: 63a85616f5fc427cf1e1e7b425293131f2fce2b8

Browse files
Files changed (2) hide show
  1. README.md +178 -0
  2. requirements.txt +222 -113
README.md CHANGED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Layout Generative Model Scores
3
+ emoji: 📊
4
+ colorFrom: gray
5
+ colorTo: green
6
+ sdk: gradio
7
+ sdk_version: 4.36.1
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
+ # Layout Generative Model Scores
13
+
14
+ ## Description
15
+
16
+ The Layout Generative Model Scores metric computes a comprehensive set of distribution-based metrics to evaluate generative models for layout generation. This metric compares feature distributions between real and generated layouts using state-of-the-art evaluation methods.
17
+
18
+ ## What It Measures
19
+
20
+ This metric implements several widely-used generative model evaluation scores:
21
+
22
+ 1. **FID (Fréchet Inception Distance)**: Measures the distance between real and generated feature distributions
23
+ 2. **Precision**: Measures the proportion of generated samples that are realistic
24
+ 3. **Recall**: Measures the proportion of real samples covered by the generated distribution
25
+ 4. **Density**: Estimates the density of the generated distribution
26
+ 5. **Coverage**: Measures the diversity of generated samples
27
+
28
+ These metrics provide a holistic view of both the quality (precision, FID) and diversity (recall, coverage) of generated layouts.
29
+
30
+ ## Metric Details
31
+
32
+ - **FID**: Computed using Fréchet distance between Gaussian distributions fitted to real and fake features
33
+ - **PRDC (Precision, Recall, Density, Coverage)**: Computed using k-nearest neighbors in feature space
34
+ - Requires feature vectors extracted from layouts (typically using a pre-trained neural network)
35
+ - All metrics are distribution-based, providing robust evaluation across large sample sets
36
+
37
+ ## Usage
38
+
39
+ ### Installation
40
+
41
+ ```bash
42
+ pip install evaluate prdc pytorch-fid
43
+ ```
44
+
45
+ ### Basic Example
46
+
47
+ ```python
48
+ import evaluate
49
+ import numpy as np
50
+
51
+ # Load the metric
52
+ metric = evaluate.load("creative-graphic-design/layout-generative-model-scores")
53
+
54
+ # Single processing
55
+ feat_size = 256
56
+ feats_real = np.random.rand(feat_size)
57
+ feats_fake = np.random.rand(feat_size)
58
+ metric.add(feats_real=feats_real, feats_fake=feats_fake)
59
+ print(metric.compute())
60
+ ```
61
+
62
+ ### Batch Processing Example
63
+
64
+ ```python
65
+ import evaluate
66
+ import numpy as np
67
+
68
+ # Load the metric
69
+ metric = evaluate.load("creative-graphic-design/layout-generative-model-scores")
70
+
71
+ # Batch processing (recommended for meaningful statistics)
72
+ batch_size, feat_size = 512, 256
73
+ feats_real = np.random.rand(batch_size, feat_size)
74
+ feats_fake = np.random.rand(batch_size, feat_size)
75
+ metric.add_batch(feats_real=feats_real, feats_fake=feats_fake)
76
+ print(metric.compute())
77
+ ```
78
+
79
+ ## Parameters
80
+
81
+ ### Initialization Parameters
82
+
83
+ - **nearest_k** (`int`, optional, default=5): Number of nearest neighbors to use for PRDC computation
84
+
85
+ ### Computation Parameters
86
+
87
+ - **feats_real** (`list` of `list` of `float`): Feature vectors extracted from real layouts (shape: N × feature_dim)
88
+ - **feats_fake** (`list` of `list` of `float`): Feature vectors extracted from generated/fake layouts (shape: N × feature_dim)
89
+
90
+ **Note**: Features are typically extracted using a pre-trained neural network (e.g., layout encoder) that converts layouts into fixed-dimensional feature vectors.
91
+
92
+ ## Returns
93
+
94
+ Returns a dictionary containing:
95
+
96
+ - **fid** (`float`): Fréchet Inception Distance
97
+ - **precision** (`float`): Precision score (0.0 to 1.0)
98
+ - **recall** (`float`): Recall score (0.0 to 1.0)
99
+ - **density** (`float`): Density score
100
+ - **coverage** (`float`): Coverage score (0.0 to 1.0)
101
+
102
+ ## Interpretation
103
+
104
+ ### FID (Fréchet Inception Distance)
105
+
106
+ - **Lower is better**: Measures similarity between real and generated distributions
107
+ - **Value of 0**: Perfect match between distributions
108
+ - **Typical range**: 0 to ∞ (in practice, usually 0-300 for layout tasks)
109
+ - **Usage**: Primary metric for assessing overall generative quality
110
+
111
+ ### Precision
112
+
113
+ - **Higher is better** (range: 0.0 to 1.0)
114
+ - Measures what proportion of generated samples are realistic
115
+ - High precision = most generated layouts look realistic
116
+ - Low precision = many unrealistic generated layouts
117
+
118
+ ### Recall
119
+
120
+ - **Higher is better** (range: 0.0 to 1.0)
121
+ - Measures what proportion of real distribution is covered by generated samples
122
+ - High recall = generated layouts cover the diversity of real layouts
123
+ - Low recall = generated layouts miss parts of the real distribution (mode collapse)
124
+
125
+ ### Density
126
+
127
+ - Estimates how densely generated samples are packed in feature space
128
+ - Higher values indicate more samples in covered regions
129
+
130
+ ### Coverage
131
+
132
+ - **Higher is better** (range: 0.0 to 1.0)
133
+ - Measures the proportion of real samples within the generated distribution's support
134
+ - Similar to recall but computed differently
135
+ - High coverage = good diversity in generation
136
+
137
+ ### Trade-offs
138
+
139
+ - **Precision vs Recall**: Common trade-off in generative models
140
+ - High precision, low recall: Safe but limited generation (mode dropping)
141
+ - Low precision, high recall: Diverse but potentially unrealistic generation
142
+ - Goal: Balance both for quality and diversity
143
+
144
+ ## Citations
145
+
146
+ ```bibtex
147
+ @article{heusel2017gans,
148
+ title={Gans trained by a two time-scale update rule converge to a local nash equilibrium},
149
+ author={Heusel, Martin and Ramsauer, Hubert and Unterthiner, Thomas and Nessler, Bernhard and Hochreiter, Sepp},
150
+ journal={Advances in neural information processing systems},
151
+ volume={30},
152
+ year={2017}
153
+ }
154
+
155
+ @inproceedings{naeem2020reliable,
156
+ title={Reliable fidelity and diversity metrics for generative models},
157
+ author={Naeem, Muhammad Ferjad and Oh, Seong Joon and Uh, Youngjung and Choi, Yunjey and Yoo, Jaejun},
158
+ booktitle={International Conference on Machine Learning},
159
+ pages={7176--7185},
160
+ year={2020},
161
+ organization={PMLR}
162
+ }
163
+ ```
164
+
165
+ ## References
166
+
167
+ - **Paper**: [GANs Trained by a Two Time-Scale Update Rule (Heusel et al., NeurIPS 2017)](https://arxiv.org/abs/1706.08500)
168
+ - **Paper**: [Reliable Fidelity and Diversity Metrics for Generative Models (Naeem et al., ICML 2020)](https://arxiv.org/abs/2002.09797)
169
+ - **Reference Implementation (FID + PRDC)**: [layout-dm metric implementation](https://github.com/CyberAgentAILab/layout-dm/blob/main/src/trainer/trainer/helpers/metric.py#L37-L59)
170
+ - **PRDC Library**: [generative-evaluation-prdc](https://github.com/clovaai/generative-evaluation-prdc)
171
+ - **PyTorch FID**: [pytorch-fid](https://github.com/mseitzer/pytorch-fid)
172
+ - **Hugging Face Space**: [creative-graphic-design/layout-generative-model-scores](https://huggingface.co/spaces/creative-graphic-design/layout-generative-model-scores)
173
+
174
+ ## Related Metrics
175
+
176
+ - [Layout Average IoU](../layout_average_iou/): Measures element overlap
177
+ - [Layout Maximum IoU](../layout_maximum_iou/): Compares layout similarity
178
+ - [Layout Validity](../layout_validity/): Checks layout validity constraints
requirements.txt CHANGED
@@ -1,113 +1,222 @@
1
- aiofiles==23.2.1 ; python_version >= "3.9" and python_version < "4.0"
2
- aiohttp==3.9.3 ; python_version >= "3.9" and python_version < "4.0"
3
- aiosignal==1.3.1 ; python_version >= "3.9" and python_version < "4.0"
4
- altair==5.2.0 ; python_version >= "3.9" and python_version < "4.0"
5
- annotated-types==0.6.0 ; python_version >= "3.9" and python_version < "4.0"
6
- anyio==4.2.0 ; python_version >= "3.9" and python_version < "4.0"
7
- arrow==1.3.0 ; python_version >= "3.9" and python_version < "4.0"
8
- async-timeout==4.0.3 ; python_version >= "3.9" and python_version < "3.11"
9
- attrs==23.2.0 ; python_version >= "3.9" and python_version < "4.0"
10
- binaryornot==0.4.4 ; python_version >= "3.9" and python_version < "4.0"
11
- certifi==2024.2.2 ; python_version >= "3.9" and python_version < "4.0"
12
- chardet==5.2.0 ; python_version >= "3.9" and python_version < "4.0"
13
- charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "4.0"
14
- click==8.1.7 ; python_version >= "3.9" and python_version < "4.0"
15
- colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0"
16
- contourpy==1.2.0 ; python_version >= "3.9" and python_version < "4.0"
17
- cookiecutter==2.5.0 ; python_version >= "3.9" and python_version < "4.0"
18
- cycler==0.12.1 ; python_version >= "3.9" and python_version < "4.0"
19
- datasets==2.17.0 ; python_version >= "3.9" and python_version < "4.0"
20
- dill==0.3.8 ; python_version >= "3.9" and python_version < "4.0"
21
- evaluate[template]==0.4.1 ; python_version >= "3.9" and python_version < "4.0"
22
- exceptiongroup==1.2.0 ; python_version >= "3.9" and python_version < "3.11"
23
- fastapi==0.109.2 ; python_version >= "3.9" and python_version < "4.0"
24
- ffmpy==0.3.1 ; python_version >= "3.9" and python_version < "4.0"
25
- filelock==3.13.1 ; python_version >= "3.9" and python_version < "4.0"
26
- fonttools==4.48.1 ; python_version >= "3.9" and python_version < "4.0"
27
- frozenlist==1.4.1 ; python_version >= "3.9" and python_version < "4.0"
28
- fsspec==2023.10.0 ; python_version >= "3.9" and python_version < "4.0"
29
- fsspec[http]==2023.10.0 ; python_version >= "3.9" and python_version < "4.0"
30
- gradio-client==0.10.0 ; python_version >= "3.9" and python_version < "4.0"
31
- gradio==4.18.0 ; python_version >= "3.9" and python_version < "4.0"
32
- h11==0.14.0 ; python_version >= "3.9" and python_version < "4.0"
33
- httpcore==1.0.2 ; python_version >= "3.9" and python_version < "4.0"
34
- httpx==0.26.0 ; python_version >= "3.9" and python_version < "4.0"
35
- huggingface-hub==0.20.3 ; python_version >= "3.9" and python_version < "4.0"
36
- idna==3.6 ; python_version >= "3.9" and python_version < "4.0"
37
- importlib-resources==6.1.1 ; python_version >= "3.9" and python_version < "4.0"
38
- jinja2==3.1.3 ; python_version >= "3.9" and python_version < "4.0"
39
- joblib==1.3.2 ; python_version >= "3.9" and python_version < "4.0"
40
- jsonschema-specifications==2023.12.1 ; python_version >= "3.9" and python_version < "4.0"
41
- jsonschema==4.21.1 ; python_version >= "3.9" and python_version < "4.0"
42
- kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "4.0"
43
- markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "4.0"
44
- markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "4.0"
45
- matplotlib==3.8.2 ; python_version >= "3.9" and python_version < "4.0"
46
- mdurl==0.1.2 ; python_version >= "3.9" and python_version < "4.0"
47
- mpmath==1.3.0 ; python_version >= "3.9" and python_version < "4.0"
48
- multidict==6.0.5 ; python_version >= "3.9" and python_version < "4.0"
49
- multiprocess==0.70.16 ; python_version >= "3.9" and python_version < "4.0"
50
- networkx==3.2.1 ; python_version >= "3.9" and python_version < "4.0"
51
- numpy==1.26.4 ; python_version >= "3.9" and python_version < "4.0"
52
- nvidia-cublas-cu12==12.1.3.1 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
53
- nvidia-cuda-cupti-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
54
- nvidia-cuda-nvrtc-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
55
- nvidia-cuda-runtime-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
56
- nvidia-cudnn-cu12==8.9.2.26 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
57
- nvidia-cufft-cu12==11.0.2.54 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
58
- nvidia-curand-cu12==10.3.2.106 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
59
- nvidia-cusolver-cu12==11.4.5.107 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
60
- nvidia-cusparse-cu12==12.1.0.106 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
61
- nvidia-nccl-cu12==2.19.3 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
62
- nvidia-nvjitlink-cu12==12.3.101 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
63
- nvidia-nvtx-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
64
- orjson==3.9.13 ; python_version >= "3.9" and python_version < "4.0"
65
- packaging==23.2 ; python_version >= "3.9" and python_version < "4.0"
66
- pandas==2.2.0 ; python_version >= "3.9" and python_version < "4.0"
67
- pillow==10.2.0 ; python_version >= "3.9" and python_version < "4.0"
68
- prdc==0.2 ; python_version >= "3.9" and python_version < "4.0"
69
- pyarrow-hotfix==0.6 ; python_version >= "3.9" and python_version < "4.0"
70
- pyarrow==15.0.0 ; python_version >= "3.9" and python_version < "4.0"
71
- pydantic-core==2.16.2 ; python_version >= "3.9" and python_version < "4.0"
72
- pydantic==2.6.1 ; python_version >= "3.9" and python_version < "4.0"
73
- pydub==0.25.1 ; python_version >= "3.9" and python_version < "4.0"
74
- pygments==2.17.2 ; python_version >= "3.9" and python_version < "4.0"
75
- pyparsing==3.1.1 ; python_version >= "3.9" and python_version < "4.0"
76
- python-dateutil==2.8.2 ; python_version >= "3.9" and python_version < "4.0"
77
- python-multipart==0.0.9 ; python_version >= "3.9" and python_version < "4.0"
78
- python-slugify==8.0.4 ; python_version >= "3.9" and python_version < "4.0"
79
- pytorch-fid==0.3.0 ; python_version >= "3.9" and python_version < "4.0"
80
- pytz==2024.1 ; python_version >= "3.9" and python_version < "4.0"
81
- pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "4.0"
82
- referencing==0.33.0 ; python_version >= "3.9" and python_version < "4.0"
83
- requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0"
84
- responses==0.18.0 ; python_version >= "3.9" and python_version < "4.0"
85
- rich==13.7.0 ; python_version >= "3.9" and python_version < "4.0"
86
- rpds-py==0.17.1 ; python_version >= "3.9" and python_version < "4.0"
87
- ruff==0.2.1 ; python_version >= "3.9" and python_version < "4.0"
88
- scikit-learn==1.4.0 ; python_version >= "3.9" and python_version < "4.0"
89
- scipy==1.12.0 ; python_version >= "3.9" and python_version < "4.0"
90
- semantic-version==2.10.0 ; python_version >= "3.9" and python_version < "4.0"
91
- shellingham==1.5.4 ; python_version >= "3.9" and python_version < "4.0"
92
- six==1.16.0 ; python_version >= "3.9" and python_version < "4.0"
93
- sniffio==1.3.0 ; python_version >= "3.9" and python_version < "4.0"
94
- starlette==0.36.3 ; python_version >= "3.9" and python_version < "4.0"
95
- sympy==1.12 ; python_version >= "3.9" and python_version < "4.0"
96
- text-unidecode==1.3 ; python_version >= "3.9" and python_version < "4.0"
97
- threadpoolctl==3.2.0 ; python_version >= "3.9" and python_version < "4.0"
98
- tomlkit==0.12.0 ; python_version >= "3.9" and python_version < "4.0"
99
- toolz==0.12.1 ; python_version >= "3.9" and python_version < "4.0"
100
- torch==2.2.0 ; python_version >= "3.9" and python_version < "4.0"
101
- torchvision==0.17.0 ; python_version >= "3.9" and python_version < "4.0"
102
- tqdm==4.66.2 ; python_version >= "3.9" and python_version < "4.0"
103
- triton==2.2.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.9" and python_version < "4.0"
104
- typer[all]==0.9.0 ; python_version >= "3.9" and python_version < "4.0"
105
- types-python-dateutil==2.8.19.20240106 ; python_version >= "3.9" and python_version < "4.0"
106
- typing-extensions==4.9.0 ; python_version >= "3.9" and python_version < "4.0"
107
- tzdata==2024.1 ; python_version >= "3.9" and python_version < "4.0"
108
- urllib3==2.2.0 ; python_version >= "3.9" and python_version < "4.0"
109
- uvicorn==0.27.1 ; python_version >= "3.9" and python_version < "4.0"
110
- websockets==11.0.3 ; python_version >= "3.9" and python_version < "4.0"
111
- xxhash==3.4.1 ; python_version >= "3.9" and python_version < "4.0"
112
- yarl==1.9.4 ; python_version >= "3.9" and python_version < "4.0"
113
- zipp==3.17.0 ; python_version >= "3.9" and python_version < "3.10"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file was autogenerated by uv via the following command:
2
+ # uv export --package layout_generative_model_scores --no-dev --no-hashes --format requirements-txt
3
+ aiohappyeyeballs==2.6.1
4
+ # via aiohttp
5
+ aiohttp==3.13.2
6
+ # via fsspec
7
+ aiosignal==1.4.0
8
+ # via aiohttp
9
+ anyio==4.12.0
10
+ # via httpx
11
+ attrs==25.4.0
12
+ # via aiohttp
13
+ certifi==2025.11.12
14
+ # via
15
+ # httpcore
16
+ # httpx
17
+ # requests
18
+ charset-normalizer==3.4.4
19
+ # via requests
20
+ click==8.3.1
21
+ # via typer-slim
22
+ colorama==0.4.6 ; sys_platform == 'win32'
23
+ # via
24
+ # click
25
+ # tqdm
26
+ datasets==4.4.2
27
+ # via evaluate
28
+ dill==0.4.0
29
+ # via
30
+ # datasets
31
+ # evaluate
32
+ # multiprocess
33
+ evaluate==0.4.6
34
+ # via layout-generative-model-scores
35
+ filelock==3.20.1
36
+ # via
37
+ # datasets
38
+ # huggingface-hub
39
+ # torch
40
+ frozenlist==1.8.0
41
+ # via
42
+ # aiohttp
43
+ # aiosignal
44
+ fsspec==2025.10.0
45
+ # via
46
+ # datasets
47
+ # evaluate
48
+ # huggingface-hub
49
+ # torch
50
+ h11==0.16.0
51
+ # via httpcore
52
+ hf-xet==1.2.0 ; platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'
53
+ # via huggingface-hub
54
+ httpcore==1.0.9
55
+ # via httpx
56
+ httpx==0.28.1
57
+ # via
58
+ # datasets
59
+ # huggingface-hub
60
+ huggingface-hub==1.2.3
61
+ # via
62
+ # datasets
63
+ # evaluate
64
+ idna==3.11
65
+ # via
66
+ # anyio
67
+ # httpx
68
+ # requests
69
+ # yarl
70
+ jinja2==3.1.6
71
+ # via torch
72
+ joblib==1.5.3
73
+ # via
74
+ # prdc
75
+ # scikit-learn
76
+ markupsafe==3.0.3
77
+ # via jinja2
78
+ mpmath==1.3.0
79
+ # via sympy
80
+ multidict==6.7.0
81
+ # via
82
+ # aiohttp
83
+ # yarl
84
+ multiprocess==0.70.18
85
+ # via
86
+ # datasets
87
+ # evaluate
88
+ networkx==3.6.1
89
+ # via torch
90
+ numpy==2.2.6
91
+ # via
92
+ # datasets
93
+ # evaluate
94
+ # pandas
95
+ # prdc
96
+ # pytorch-fid
97
+ # scikit-learn
98
+ # scipy
99
+ # torchvision
100
+ nvidia-cublas-cu12==12.8.4.1 ; platform_machine == 'x86_64' and sys_platform == 'linux'
101
+ # via
102
+ # nvidia-cudnn-cu12
103
+ # nvidia-cusolver-cu12
104
+ # torch
105
+ nvidia-cuda-cupti-cu12==12.8.90 ; platform_machine == 'x86_64' and sys_platform == 'linux'
106
+ # via torch
107
+ nvidia-cuda-nvrtc-cu12==12.8.93 ; platform_machine == 'x86_64' and sys_platform == 'linux'
108
+ # via torch
109
+ nvidia-cuda-runtime-cu12==12.8.90 ; platform_machine == 'x86_64' and sys_platform == 'linux'
110
+ # via torch
111
+ nvidia-cudnn-cu12==9.10.2.21 ; platform_machine == 'x86_64' and sys_platform == 'linux'
112
+ # via torch
113
+ nvidia-cufft-cu12==11.3.3.83 ; platform_machine == 'x86_64' and sys_platform == 'linux'
114
+ # via torch
115
+ nvidia-cufile-cu12==1.13.1.3 ; platform_machine == 'x86_64' and sys_platform == 'linux'
116
+ # via torch
117
+ nvidia-curand-cu12==10.3.9.90 ; platform_machine == 'x86_64' and sys_platform == 'linux'
118
+ # via torch
119
+ nvidia-cusolver-cu12==11.7.3.90 ; platform_machine == 'x86_64' and sys_platform == 'linux'
120
+ # via torch
121
+ nvidia-cusparse-cu12==12.5.8.93 ; platform_machine == 'x86_64' and sys_platform == 'linux'
122
+ # via
123
+ # nvidia-cusolver-cu12
124
+ # torch
125
+ nvidia-cusparselt-cu12==0.7.1 ; platform_machine == 'x86_64' and sys_platform == 'linux'
126
+ # via torch
127
+ nvidia-nccl-cu12==2.27.5 ; platform_machine == 'x86_64' and sys_platform == 'linux'
128
+ # via torch
129
+ nvidia-nvjitlink-cu12==12.8.93 ; platform_machine == 'x86_64' and sys_platform == 'linux'
130
+ # via
131
+ # nvidia-cufft-cu12
132
+ # nvidia-cusolver-cu12
133
+ # nvidia-cusparse-cu12
134
+ # torch
135
+ nvidia-nvshmem-cu12==3.3.20 ; platform_machine == 'x86_64' and sys_platform == 'linux'
136
+ # via torch
137
+ nvidia-nvtx-cu12==12.8.90 ; platform_machine == 'x86_64' and sys_platform == 'linux'
138
+ # via torch
139
+ packaging==25.0
140
+ # via
141
+ # datasets
142
+ # evaluate
143
+ # huggingface-hub
144
+ pandas==2.3.3
145
+ # via
146
+ # datasets
147
+ # evaluate
148
+ pillow==12.0.0
149
+ # via
150
+ # pytorch-fid
151
+ # torchvision
152
+ prdc==0.2
153
+ # via layout-generative-model-scores
154
+ propcache==0.4.1
155
+ # via
156
+ # aiohttp
157
+ # yarl
158
+ pyarrow==22.0.0
159
+ # via datasets
160
+ python-dateutil==2.9.0.post0
161
+ # via pandas
162
+ pytorch-fid==0.3.0
163
+ # via layout-generative-model-scores
164
+ pytz==2025.2
165
+ # via pandas
166
+ pyyaml==6.0.3
167
+ # via
168
+ # datasets
169
+ # huggingface-hub
170
+ requests==2.32.5
171
+ # via
172
+ # datasets
173
+ # evaluate
174
+ scikit-learn==1.8.0
175
+ # via prdc
176
+ scipy==1.16.3
177
+ # via
178
+ # prdc
179
+ # pytorch-fid
180
+ # scikit-learn
181
+ setuptools==80.9.0 ; python_full_version >= '3.12'
182
+ # via torch
183
+ shellingham==1.5.4
184
+ # via huggingface-hub
185
+ six==1.17.0
186
+ # via python-dateutil
187
+ sympy==1.14.0
188
+ # via torch
189
+ threadpoolctl==3.6.0
190
+ # via scikit-learn
191
+ torch==2.9.1
192
+ # via
193
+ # pytorch-fid
194
+ # torchvision
195
+ torchvision==0.24.1
196
+ # via pytorch-fid
197
+ tqdm==4.67.1
198
+ # via
199
+ # datasets
200
+ # evaluate
201
+ # huggingface-hub
202
+ triton==3.5.1 ; platform_machine == 'x86_64' and sys_platform == 'linux'
203
+ # via torch
204
+ typer-slim==0.21.0
205
+ # via huggingface-hub
206
+ typing-extensions==4.15.0
207
+ # via
208
+ # aiosignal
209
+ # anyio
210
+ # huggingface-hub
211
+ # torch
212
+ # typer-slim
213
+ tzdata==2025.3
214
+ # via pandas
215
+ urllib3==2.6.2
216
+ # via requests
217
+ xxhash==3.6.0
218
+ # via
219
+ # datasets
220
+ # evaluate
221
+ yarl==1.22.0
222
+ # via aiohttp