thibaud frere commited on
Commit
ebb053a
Β·
1 Parent(s): a0cad0d
README.md CHANGED
@@ -1,5 +1,5 @@
1
  ---
2
- title: 'FineVision: Open Data is all you need'
3
  emoji: πŸ“
4
  colorFrom: blue
5
  colorTo: indigo
 
1
  ---
2
+ title: 'Bringing paper to life: A modern template for scientific writing'
3
  emoji: πŸ“
4
  colorFrom: blue
5
  colorTo: indigo
app/.astro/astro/content.d.ts CHANGED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ declare module 'astro:content' {
2
+ interface Render {
3
+ '.mdx': Promise<{
4
+ Content: import('astro').MarkdownInstance<{}>['Content'];
5
+ headings: import('astro').MarkdownHeading[];
6
+ remarkPluginFrontmatter: Record<string, any>;
7
+ components: import('astro').MDXInstance<{}>['components'];
8
+ }>;
9
+ }
10
+ }
11
+
12
+ declare module 'astro:content' {
13
+ interface RenderResult {
14
+ Content: import('astro/runtime/server/index.js').AstroComponentFactory;
15
+ headings: import('astro').MarkdownHeading[];
16
+ remarkPluginFrontmatter: Record<string, any>;
17
+ }
18
+ interface Render {
19
+ '.md': Promise<RenderResult>;
20
+ }
21
+
22
+ export interface RenderedContent {
23
+ html: string;
24
+ metadata?: {
25
+ imagePaths: Array<string>;
26
+ [key: string]: unknown;
27
+ };
28
+ }
29
+ }
30
+
31
+ declare module 'astro:content' {
32
+ type Flatten<T> = T extends { [K: string]: infer U } ? U : never;
33
+
34
+ export type CollectionKey = keyof AnyEntryMap;
35
+ export type CollectionEntry<C extends CollectionKey> = Flatten<AnyEntryMap[C]>;
36
+
37
+ export type ContentCollectionKey = keyof ContentEntryMap;
38
+ export type DataCollectionKey = keyof DataEntryMap;
39
+
40
+ type AllValuesOf<T> = T extends any ? T[keyof T] : never;
41
+ type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf<
42
+ ContentEntryMap[C]
43
+ >['slug'];
44
+
45
+ /** @deprecated Use `getEntry` instead. */
46
+ export function getEntryBySlug<
47
+ C extends keyof ContentEntryMap,
48
+ E extends ValidContentEntrySlug<C> | (string & {}),
49
+ >(
50
+ collection: C,
51
+ // Note that this has to accept a regular string too, for SSR
52
+ entrySlug: E,
53
+ ): E extends ValidContentEntrySlug<C>
54
+ ? Promise<CollectionEntry<C>>
55
+ : Promise<CollectionEntry<C> | undefined>;
56
+
57
+ /** @deprecated Use `getEntry` instead. */
58
+ export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>(
59
+ collection: C,
60
+ entryId: E,
61
+ ): Promise<CollectionEntry<C>>;
62
+
63
+ export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>(
64
+ collection: C,
65
+ filter?: (entry: CollectionEntry<C>) => entry is E,
66
+ ): Promise<E[]>;
67
+ export function getCollection<C extends keyof AnyEntryMap>(
68
+ collection: C,
69
+ filter?: (entry: CollectionEntry<C>) => unknown,
70
+ ): Promise<CollectionEntry<C>[]>;
71
+
72
+ export function getEntry<
73
+ C extends keyof ContentEntryMap,
74
+ E extends ValidContentEntrySlug<C> | (string & {}),
75
+ >(entry: {
76
+ collection: C;
77
+ slug: E;
78
+ }): E extends ValidContentEntrySlug<C>
79
+ ? Promise<CollectionEntry<C>>
80
+ : Promise<CollectionEntry<C> | undefined>;
81
+ export function getEntry<
82
+ C extends keyof DataEntryMap,
83
+ E extends keyof DataEntryMap[C] | (string & {}),
84
+ >(entry: {
85
+ collection: C;
86
+ id: E;
87
+ }): E extends keyof DataEntryMap[C]
88
+ ? Promise<DataEntryMap[C][E]>
89
+ : Promise<CollectionEntry<C> | undefined>;
90
+ export function getEntry<
91
+ C extends keyof ContentEntryMap,
92
+ E extends ValidContentEntrySlug<C> | (string & {}),
93
+ >(
94
+ collection: C,
95
+ slug: E,
96
+ ): E extends ValidContentEntrySlug<C>
97
+ ? Promise<CollectionEntry<C>>
98
+ : Promise<CollectionEntry<C> | undefined>;
99
+ export function getEntry<
100
+ C extends keyof DataEntryMap,
101
+ E extends keyof DataEntryMap[C] | (string & {}),
102
+ >(
103
+ collection: C,
104
+ id: E,
105
+ ): E extends keyof DataEntryMap[C]
106
+ ? Promise<DataEntryMap[C][E]>
107
+ : Promise<CollectionEntry<C> | undefined>;
108
+
109
+ /** Resolve an array of entry references from the same collection */
110
+ export function getEntries<C extends keyof ContentEntryMap>(
111
+ entries: {
112
+ collection: C;
113
+ slug: ValidContentEntrySlug<C>;
114
+ }[],
115
+ ): Promise<CollectionEntry<C>[]>;
116
+ export function getEntries<C extends keyof DataEntryMap>(
117
+ entries: {
118
+ collection: C;
119
+ id: keyof DataEntryMap[C];
120
+ }[],
121
+ ): Promise<CollectionEntry<C>[]>;
122
+
123
+ export function render<C extends keyof AnyEntryMap>(
124
+ entry: AnyEntryMap[C][string],
125
+ ): Promise<RenderResult>;
126
+
127
+ export function reference<C extends keyof AnyEntryMap>(
128
+ collection: C,
129
+ ): import('astro/zod').ZodEffects<
130
+ import('astro/zod').ZodString,
131
+ C extends keyof ContentEntryMap
132
+ ? {
133
+ collection: C;
134
+ slug: ValidContentEntrySlug<C>;
135
+ }
136
+ : {
137
+ collection: C;
138
+ id: keyof DataEntryMap[C];
139
+ }
140
+ >;
141
+ // Allow generic `string` to avoid excessive type errors in the config
142
+ // if `dev` is not running to update as you edit.
143
+ // Invalid collection names will be caught at build time.
144
+ export function reference<C extends string>(
145
+ collection: C,
146
+ ): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>;
147
+
148
+ type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
149
+ type InferEntrySchema<C extends keyof AnyEntryMap> = import('astro/zod').infer<
150
+ ReturnTypeOrOriginal<Required<ContentConfig['collections'][C]>['schema']>
151
+ >;
152
+
153
+ type ContentEntryMap = {
154
+ "chapters": {
155
+ "available-blocks.mdx": {
156
+ id: "available-blocks.mdx";
157
+ slug: "available-blocks";
158
+ body: string;
159
+ collection: "chapters";
160
+ data: any
161
+ } & { render(): Render[".mdx"] };
162
+ "best-pratices.mdx": {
163
+ id: "best-pratices.mdx";
164
+ slug: "best-pratices";
165
+ body: string;
166
+ collection: "chapters";
167
+ data: any
168
+ } & { render(): Render[".mdx"] };
169
+ "getting-started.mdx": {
170
+ id: "getting-started.mdx";
171
+ slug: "getting-started";
172
+ body: string;
173
+ collection: "chapters";
174
+ data: any
175
+ } & { render(): Render[".mdx"] };
176
+ "introduction.mdx": {
177
+ id: "introduction.mdx";
178
+ slug: "introduction";
179
+ body: string;
180
+ collection: "chapters";
181
+ data: any
182
+ } & { render(): Render[".mdx"] };
183
+ "writing-your-content.mdx": {
184
+ id: "writing-your-content.mdx";
185
+ slug: "writing-your-content";
186
+ body: string;
187
+ collection: "chapters";
188
+ data: any
189
+ } & { render(): Render[".mdx"] };
190
+ };
191
+ "embeds": {
192
+ "vibe-code-d3-embeds-directives.md": {
193
+ id: "vibe-code-d3-embeds-directives.md";
194
+ slug: "vibe-code-d3-embeds-directives";
195
+ body: string;
196
+ collection: "embeds";
197
+ data: any
198
+ } & { render(): Render[".md"] };
199
+ };
200
+
201
+ };
202
+
203
+ type DataEntryMap = {
204
+ "assets": {
205
+ "data/mnist-variant-model": {
206
+ id: "data/mnist-variant-model";
207
+ collection: "assets";
208
+ data: any
209
+ };
210
+ };
211
+
212
+ };
213
+
214
+ type AnyEntryMap = ContentEntryMap & DataEntryMap;
215
+
216
+ export type ContentConfig = never;
217
+ }
app/src/content/bibliography.bib CHANGED
@@ -18,3 +18,125 @@
18
  }
19
 
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  }
19
 
20
 
21
+ @book{mckinney2017python,
22
+ title={Python for Data Analysis},
23
+ author={McKinney, Wes},
24
+ publisher={O'Reilly Media},
25
+ address={Sebastopol, CA},
26
+ year={2017},
27
+ edition={2},
28
+ isbn={978-1491957660}
29
+ }
30
+
31
+ @inproceedings{he2016resnet,
32
+ title={Deep Residual Learning for Image Recognition},
33
+ author={He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian},
34
+ booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
35
+ pages={770--778},
36
+ year={2016},
37
+ doi={10.1109/CVPR.2016.90},
38
+ url={https://doi.org/10.1109/CVPR.2016.90}
39
+ }
40
+
41
+ @article{silver2017mastering,
42
+ title={Mastering the game of Go without human knowledge},
43
+ author={Silver, David and Schrittwieser, Julian and Simonyan, Karen and Antonoglou, Ioannis and Huang, Aja and others},
44
+ journal={Nature},
45
+ volume={550},
46
+ number={7676},
47
+ pages={354--359},
48
+ year={2017},
49
+ month={oct},
50
+ doi={10.1038/nature24270},
51
+ url={https://www.nature.com/articles/nature24270}
52
+ }
53
+
54
+ @techreport{openai2023gpt4,
55
+ title={GPT-4 Technical Report},
56
+ author={{OpenAI}},
57
+ institution={OpenAI},
58
+ year={2023},
59
+ number={arXiv:2303.08774},
60
+ archivePrefix={arXiv},
61
+ eprint={2303.08774},
62
+ primaryClass={cs.CL},
63
+ url={https://arxiv.org/abs/2303.08774}
64
+ }
65
+
66
+ @phdthesis{doe2020thesis,
67
+ title={Learning Efficient Representations for Large-Scale Visual Recognition},
68
+ author={Doe, Jane},
69
+ school={Massachusetts Institute of Technology},
70
+ address={Cambridge, MA},
71
+ year={2020},
72
+ doi={10.5555/mit-2020-xyz}
73
+ }
74
+
75
+ @incollection{cover2006entropy,
76
+ title={Entropy, Relative Entropy, and Mutual Information},
77
+ author={Cover, Thomas M. and Thomas, Joy A.},
78
+ booktitle={Elements of Information Theory},
79
+ publisher={Wiley},
80
+ address={Hoboken, NJ},
81
+ edition={2},
82
+ year={2006},
83
+ pages={13--55},
84
+ isbn={978-0471241959}
85
+ }
86
+
87
+ @misc{zenodo2021dataset,
88
+ title={ImageNet-21K Subset (Version 2.0)},
89
+ author={Smith, John and Lee, Alice and Kumar, Ravi},
90
+ year={2021},
91
+ howpublished={Dataset on Zenodo},
92
+ doi={10.5281/zenodo.1234567},
93
+ url={https://doi.org/10.5281/zenodo.1234567},
94
+ note={Accessed 2025-09-01}
95
+ }
96
+
97
+ @misc{sklearn2024,
98
+ title={scikit-learn: Machine Learning in Python (Version 1.4)},
99
+ author={Pedregosa, Fabian and Varoquaux, Ga{"e}l and Gramfort, Alexandre and others},
100
+ year={2024},
101
+ howpublished={Software},
102
+ doi={10.5281/zenodo.592264},
103
+ url={https://scikit-learn.org}
104
+ }
105
+
106
+ @inproceedings{smith2024privacy,
107
+ title={Privacy-Preserving Training with Low-Precision Secure Aggregation},
108
+ author={Smith, Emily and Zhang, Wei and Rossi, Marco and Patel, Neha},
109
+ booktitle={Proceedings of the 41st International Conference on Machine Learning},
110
+ editor={Smith, A. and Johnson, B.},
111
+ series={Proceedings of Machine Learning Research},
112
+ volume={235},
113
+ pages={12345--12367},
114
+ address={Vienna, Austria},
115
+ publisher={PMLR},
116
+ month={jul},
117
+ year={2024},
118
+ url={https://proceedings.mlr.press/v235/}
119
+ }
120
+
121
+ @article{kingma2015adam,
122
+ title={Adam: A Method for Stochastic Optimization},
123
+ author={Kingma, Diederik P. and Ba, Jimmy},
124
+ journal={International Conference on Learning Representations (ICLR)},
125
+ year={2015},
126
+ archivePrefix={arXiv},
127
+ eprint={1412.6980},
128
+ primaryClass={cs.LG},
129
+ url={https://arxiv.org/abs/1412.6980}
130
+ }
131
+
132
+ @misc{raffel2020t5,
133
+ title={Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer},
134
+ author={Raffel, Colin and Shazeer, Noam and Roberts, Adam and Lee, Katherine and Narang, Sharan and others},
135
+ year={2020},
136
+ howpublished={arXiv preprint},
137
+ archivePrefix={arXiv},
138
+ eprint={1910.10683},
139
+ primaryClass={cs.LG},
140
+ doi={10.48550/arXiv.1910.10683},
141
+ url={https://arxiv.org/abs/1910.10683}
142
+ }