前言#
在前面两篇博文中,已经分别介绍了p站图片的爬取和预处理。在这篇博文中,只是发发跑网络时的小牢骚罢了。
用的GAN叫Style-GAN,来自一篇不算太久远的Paper:A Style-based generator architecture for generative adversarial networks(arXiv 1812.04948)。
NVLab开源了官方的实现代码,直接clone,跟着教程走,就能跑起来了。
硬件要求#
只跑128x128
大小的GAN的话并没有官方给出的数据那么夸张。个人估测最低配置如下:
RAM: 至少32G
GPU: VRAM至少8G,flops越高越好
CPU: 还行吧,不拖累显卡就好了
用1080 Ti跑完预定的2500万次迭代(25000k img)的至少估算时间:12天
我当然没跑完了,抛开几十块的电费不说,16G的内存实在是无能为力,到后面基本都是swap置换了,再跑下去也是难受。因此在保存了权重之后,果断Ctrl+C。
结果#
生成网络的生成的大部分结果都已经很棒了(起码比我厉害,也比我跑过的一些传统的GAN要厉害)。具体可以看上面的图,只节选了全图中的一部分。
完整的大图:
论文肯定是会看的,但是是什么时候才看就说不准了。(咕咕咕)
运行的输出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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196dnnlib: Running training.training_loop.training_loop() on localhost...
Streaming data using training.dataset.TFRecordDataset...
Dataset shape = [3, 128, 128]
Dynamic range = [0, 255]
Label size = 0
Constructing networks...
G Params OutputShape WeightShape
--- --- --- ---
latents_in - (?, 512) -
labels_in - (?, 0) -
lod - () -
dlatent_avg - (512,) -
G_mapping/latents_in - (?, 512) -
G_mapping/labels_in - (?, 0) -
G_mapping/PixelNorm - (?, 512) -
G_mapping/Dense0 262656 (?, 512) (512, 512)
G_mapping/Dense1 262656 (?, 512) (512, 512)
G_mapping/Dense2 262656 (?, 512) (512, 512)
G_mapping/Dense3 262656 (?, 512) (512, 512)
G_mapping/Dense4 262656 (?, 512) (512, 512)
G_mapping/Dense5 262656 (?, 512) (512, 512)
G_mapping/Dense6 262656 (?, 512) (512, 512)
G_mapping/Dense7 262656 (?, 512) (512, 512)
G_mapping/Broadcast - (?, 12, 512) -
G_mapping/dlatents_out - (?, 12, 512) -
Truncation - (?, 12, 512) -
G_synthesis/dlatents_in - (?, 12, 512) -
G_synthesis/4x4/Const 534528 (?, 512, 4, 4) (512,)
G_synthesis/4x4/Conv 2885632 (?, 512, 4, 4) (3, 3, 512, 512)
G_synthesis/ToRGB_lod5 1539 (?, 3, 4, 4) (1, 1, 512, 3)
G_synthesis/8x8/Conv0_up 2885632 (?, 512, 8, 8) (3, 3, 512, 512)
G_synthesis/8x8/Conv1 2885632 (?, 512, 8, 8) (3, 3, 512, 512)
G_synthesis/ToRGB_lod4 1539 (?, 3, 8, 8) (1, 1, 512, 3)
G_synthesis/Upscale2D - (?, 3, 8, 8) -
G_synthesis/Grow_lod4 - (?, 3, 8, 8) -
G_synthesis/16x16/Conv0_up 2885632 (?, 512, 16, 16) (3, 3, 512, 512)
G_synthesis/16x16/Conv1 2885632 (?, 512, 16, 16) (3, 3, 512, 512)
G_synthesis/ToRGB_lod3 1539 (?, 3, 16, 16) (1, 1, 512, 3)
G_synthesis/Upscale2D_1 - (?, 3, 16, 16) -
G_synthesis/Grow_lod3 - (?, 3, 16, 16) -
G_synthesis/32x32/Conv0_up 2885632 (?, 512, 32, 32) (3, 3, 512, 512)
G_synthesis/32x32/Conv1 2885632 (?, 512, 32, 32) (3, 3, 512, 512)
G_synthesis/ToRGB_lod2 1539 (?, 3, 32, 32) (1, 1, 512, 3)
G_synthesis/Upscale2D_2 - (?, 3, 32, 32) -
G_synthesis/Grow_lod2 - (?, 3, 32, 32) -
G_synthesis/64x64/Conv0_up 1442816 (?, 256, 64, 64) (3, 3, 512, 256)
G_synthesis/64x64/Conv1 852992 (?, 256, 64, 64) (3, 3, 256, 256)
G_synthesis/ToRGB_lod1 771 (?, 3, 64, 64) (1, 1, 256, 3)
G_synthesis/Upscale2D_3 - (?, 3, 64, 64) -
G_synthesis/Grow_lod1 - (?, 3, 64, 64) -
G_synthesis/128x128/Conv0_up 426496 (?, 128, 128, 128) (3, 3, 256, 128)
G_synthesis/128x128/Conv1 279040 (?, 128, 128, 128) (3, 3, 128, 128)
G_synthesis/ToRGB_lod0 387 (?, 3, 128, 128) (1, 1, 128, 3)
G_synthesis/Upscale2D_4 - (?, 3, 128, 128) -
G_synthesis/Grow_lod0 - (?, 3, 128, 128) -
G_synthesis/images_out - (?, 3, 128, 128) -
G_synthesis/lod - () -
G_synthesis/noise0 - (1, 1, 4, 4) -
G_synthesis/noise1 - (1, 1, 4, 4) -
G_synthesis/noise2 - (1, 1, 8, 8) -
G_synthesis/noise3 - (1, 1, 8, 8) -
G_synthesis/noise4 - (1, 1, 16, 16) -
G_synthesis/noise5 - (1, 1, 16, 16) -
G_synthesis/noise6 - (1, 1, 32, 32) -
G_synthesis/noise7 - (1, 1, 32, 32) -
G_synthesis/noise8 - (1, 1, 64, 64) -
G_synthesis/noise9 - (1, 1, 64, 64) -
G_synthesis/noise10 - (1, 1, 128, 128) -
G_synthesis/noise11 - (1, 1, 128, 128) -
images_out - (?, 3, 128, 128) -
--- --- --- ---
Total 25843858
D Params OutputShape WeightShape
--- --- --- ---
images_in - (?, 3, 128, 128) -
labels_in - (?, 0) -
lod - () -
FromRGB_lod0 512 (?, 128, 128, 128) (1, 1, 3, 128)
128x128/Conv0 147584 (?, 128, 128, 128) (3, 3, 128, 128)
128x128/Conv1_down 295168 (?, 256, 64, 64) (3, 3, 128, 256)
Downscale2D - (?, 3, 64, 64) -
FromRGB_lod1 1024 (?, 256, 64, 64) (1, 1, 3, 256)
Grow_lod0 - (?, 256, 64, 64) -
64x64/Conv0 590080 (?, 256, 64, 64) (3, 3, 256, 256)
64x64/Conv1_down 1180160 (?, 512, 32, 32) (3, 3, 256, 512)
Downscale2D_1 - (?, 3, 32, 32) -
FromRGB_lod2 2048 (?, 512, 32, 32) (1, 1, 3, 512)
Grow_lod1 - (?, 512, 32, 32) -
32x32/Conv0 2359808 (?, 512, 32, 32) (3, 3, 512, 512)
32x32/Conv1_down 2359808 (?, 512, 16, 16) (3, 3, 512, 512)
Downscale2D_2 - (?, 3, 16, 16) -
FromRGB_lod3 2048 (?, 512, 16, 16) (1, 1, 3, 512)
Grow_lod2 - (?, 512, 16, 16) -
16x16/Conv0 2359808 (?, 512, 16, 16) (3, 3, 512, 512)
16x16/Conv1_down 2359808 (?, 512, 8, 8) (3, 3, 512, 512)
Downscale2D_3 - (?, 3, 8, 8) -
FromRGB_lod4 2048 (?, 512, 8, 8) (1, 1, 3, 512)
Grow_lod3 - (?, 512, 8, 8) -
8x8/Conv0 2359808 (?, 512, 8, 8) (3, 3, 512, 512)
8x8/Conv1_down 2359808 (?, 512, 4, 4) (3, 3, 512, 512)
Downscale2D_4 - (?, 3, 4, 4) -
FromRGB_lod5 2048 (?, 512, 4, 4) (1, 1, 3, 512)
Grow_lod4 - (?, 512, 4, 4) -
4x4/MinibatchStddev - (?, 513, 4, 4) -
4x4/Conv 2364416 (?, 512, 4, 4) (3, 3, 513, 512)
4x4/Dense0 4194816 (?, 512) (8192, 512)
4x4/Dense1 513 (?, 1) (512, 1)
scores_out - (?, 1) -
--- --- --- ---
Total 22941313
Building TensorFlow graph...
Setting up snapshot image grid...
Setting up run dir...
Training...
tick 1 kimg 140.3 lod 4.00 minibatch 128 time 3m 05s sec/tick 143.2 sec/kimg 1.02 maintenance 41.7 gpumem 3.0
network-snapshot-000140 time 3m 35s fid50k 374.5350
tick 2 kimg 280.6 lod 4.00 minibatch 128 time 9m 31s sec/tick 163.3 sec/kimg 1.16 maintenance 222.9 gpumem 3.4
tick 3 kimg 420.9 lod 4.00 minibatch 128 time 12m 08s sec/tick 156.9 sec/kimg 1.12 maintenance 0.4 gpumem 3.4
tick 4 kimg 561.2 lod 4.00 minibatch 128 time 14m 47s sec/tick 157.8 sec/kimg 1.12 maintenance 0.4 gpumem 3.4
tick 5 kimg 681.5 lod 3.87 minibatch 128 time 20m 12s sec/tick 324.6 sec/kimg 2.70 maintenance 0.4 gpumem 4.5
tick 6 kimg 801.8 lod 3.66 minibatch 128 time 26m 49s sec/tick 396.3 sec/kimg 3.29 maintenance 0.6 gpumem 4.5
tick 7 kimg 922.1 lod 3.46 minibatch 128 time 33m 20s sec/tick 391.1 sec/kimg 3.25 maintenance 0.6 gpumem 4.5
tick 8 kimg 1042.4 lod 3.26 minibatch 128 time 40m 00s sec/tick 399.4 sec/kimg 3.32 maintenance 0.5 gpumem 4.5
tick 9 kimg 1162.8 lod 3.06 minibatch 128 time 46m 36s sec/tick 394.9 sec/kimg 3.28 maintenance 0.6 gpumem 4.5
tick 10 kimg 1283.1 lod 3.00 minibatch 128 time 53m 11s sec/tick 395.0 sec/kimg 3.28 maintenance 0.6 gpumem 4.5
network-snapshot-001283 time 3m 50s fid50k 302.4119
tick 11 kimg 1403.4 lod 3.00 minibatch 128 time 1h 03m 35s sec/tick 391.7 sec/kimg 3.26 maintenance 231.8 gpumem 4.5
tick 12 kimg 1523.7 lod 3.00 minibatch 128 time 1h 10m 04s sec/tick 388.5 sec/kimg 3.23 maintenance 0.5 gpumem 4.5
tick 13 kimg 1644.0 lod 3.00 minibatch 128 time 1h 16m 32s sec/tick 387.8 sec/kimg 3.22 maintenance 0.6 gpumem 4.5
tick 14 kimg 1764.4 lod 3.00 minibatch 128 time 1h 23m 02s sec/tick 388.6 sec/kimg 3.23 maintenance 0.6 gpumem 4.5
tick 15 kimg 1864.4 lod 2.89 minibatch 64 time 1h 37m 36s sec/tick 873.9 sec/kimg 8.73 maintenance 0.6 gpumem 4.7
tick 16 kimg 1964.5 lod 2.73 minibatch 64 time 1h 56m 27s sec/tick 1130.0 sec/kimg 11.29 maintenance 1.1 gpumem 4.7
tick 17 kimg 2064.6 lod 2.56 minibatch 64 time 2h 15m 18s sec/tick 1129.7 sec/kimg 11.29 maintenance 1.0 gpumem 4.7
tick 18 kimg 2164.7 lod 2.39 minibatch 64 time 2h 34m 11s sec/tick 1132.3 sec/kimg 11.31 maintenance 1.0 gpumem 4.7
tick 19 kimg 2264.8 lod 2.23 minibatch 64 time 2h 53m 04s sec/tick 1132.1 sec/kimg 11.31 maintenance 1.0 gpumem 4.7
tick 20 kimg 2364.9 lod 2.06 minibatch 64 time 3h 11m 57s sec/tick 1132.2 sec/kimg 11.31 maintenance 1.0 gpumem 4.7
network-snapshot-002364 time 4m 33s fid50k 297.8871
tick 21 kimg 2465.0 lod 2.00 minibatch 64 time 3h 35m 39s sec/tick 1146.3 sec/kimg 11.45 maintenance 275.5 gpumem 4.7
tick 22 kimg 2565.1 lod 2.00 minibatch 64 time 3h 54m 34s sec/tick 1133.9 sec/kimg 11.33 maintenance 1.0 gpumem 4.7
tick 23 kimg 2665.2 lod 2.00 minibatch 64 time 4h 13m 31s sec/tick 1135.8 sec/kimg 11.35 maintenance 1.0 gpumem 4.7
tick 24 kimg 2765.3 lod 2.00 minibatch 64 time 4h 32m 02s sec/tick 1109.7 sec/kimg 11.09 maintenance 1.0 gpumem 4.7
tick 25 kimg 2865.4 lod 2.00 minibatch 64 time 4h 50m 52s sec/tick 1129.1 sec/kimg 11.28 maintenance 1.0 gpumem 4.7
tick 26 kimg 2965.5 lod 2.00 minibatch 64 time 5h 09m 32s sec/tick 1118.7 sec/kimg 11.18 maintenance 1.1 gpumem 4.7
tick 27 kimg 3045.5 lod 1.92 minibatch 32 time 5h 38m 21s sec/tick 1728.0 sec/kimg 21.60 maintenance 1.0 gpumem 4.9
tick 28 kimg 3125.5 lod 1.79 minibatch 32 time 6h 16m 31s sec/tick 2288.1 sec/kimg 28.60 maintenance 2.3 gpumem 4.9
tick 29 kimg 3205.5 lod 1.66 minibatch 32 time 6h 54m 45s sec/tick 2291.4 sec/kimg 28.64 maintenance 2.5 gpumem 4.9
tick 30 kimg 3285.5 lod 1.52 minibatch 32 time 7h 33m 34s sec/tick 2326.7 sec/kimg 29.08 maintenance 2.8 gpumem 4.9
network-snapshot-003285 time 6m 02s fid50k 243.0076
tick 31 kimg 3365.5 lod 1.39 minibatch 32 time 8h 17m 27s sec/tick 2266.9 sec/kimg 28.34 maintenance 366.3 gpumem 4.9
tick 32 kimg 3445.5 lod 1.26 minibatch 32 time 8h 55m 02s sec/tick 2251.5 sec/kimg 28.14 maintenance 2.8 gpumem 4.9
tick 33 kimg 3525.5 lod 1.12 minibatch 32 time 9h 32m 35s sec/tick 2250.6 sec/kimg 28.13 maintenance 2.7 gpumem 4.9
tick 34 kimg 3605.5 lod 1.00 minibatch 32 time 10h 10m 04s sec/tick 2246.4 sec/kimg 28.08 maintenance 2.7 gpumem 4.9
tick 35 kimg 3685.5 lod 1.00 minibatch 32 time 10h 46m 35s sec/tick 2188.4 sec/kimg 27.35 maintenance 2.6 gpumem 4.9
tick 36 kimg 3765.5 lod 1.00 minibatch 32 time 11h 23m 07s sec/tick 2189.2 sec/kimg 27.37 maintenance 2.6 gpumem 4.9
tick 37 kimg 3845.5 lod 1.00 minibatch 32 time 11h 59m 38s sec/tick 2188.1 sec/kimg 27.35 maintenance 2.7 gpumem 4.9
tick 38 kimg 3925.5 lod 1.00 minibatch 32 time 12h 36m 08s sec/tick 2188.1 sec/kimg 27.35 maintenance 2.6 gpumem 4.9
tick 39 kimg 4005.5 lod 1.00 minibatch 32 time 13h 12m 40s sec/tick 2189.1 sec/kimg 27.36 maintenance 2.7 gpumem 4.9
tick 40 kimg 4085.5 lod 1.00 minibatch 32 time 13h 49m 12s sec/tick 2188.8 sec/kimg 27.36 maintenance 2.6 gpumem 4.9
network-snapshot-004085 time 5m 49s fid50k 116.0598
tick 41 kimg 4165.5 lod 1.00 minibatch 32 time 14h 31m 32s sec/tick 2188.0 sec/kimg 27.35 maintenance 352.6 gpumem 4.9
tick 42 kimg 4225.5 lod 0.96 minibatch 16 time 15h 11m 38s sec/tick 2403.0 sec/kimg 40.03 maintenance 2.6 gpumem 5.1
tick 43 kimg 4285.6 lod 0.86 minibatch 16 time 16h 09m 48s sec/tick 3480.7 sec/kimg 57.98 maintenance 9.6 gpumem 5.1
tick 44 kimg 4345.6 lod 0.76 minibatch 16 time 17h 06m 03s sec/tick 3368.3 sec/kimg 56.11 maintenance 7.1 gpumem 5.1
tick 45 kimg 4405.6 lod 0.66 minibatch 16 time 18h 02m 18s sec/tick 3366.8 sec/kimg 56.08 maintenance 8.3 gpumem 5.1
tick 46 kimg 4465.7 lod 0.56 minibatch 16 time 18h 57m 51s sec/tick 3323.2 sec/kimg 55.36 maintenance 9.6 gpumem 5.1
tick 47 kimg 4525.7 lod 0.46 minibatch 16 time 19h 53m 22s sec/tick 3323.7 sec/kimg 55.37 maintenance 7.3 gpumem 5.1
tick 48 kimg 4585.7 lod 0.36 minibatch 16 time 20h 50m 32s sec/tick 3424.0 sec/kimg 57.04 maintenance 5.6 gpumem 5.1
tick 49 kimg 4645.8 lod 0.26 minibatch 16 time 21h 47m 58s sec/tick 3436.1 sec/kimg 57.24 maintenance 9.7 gpumem 5.1
tick 50 kimg 4705.8 lod 0.16 minibatch 16 time 22h 45m 04s sec/tick 3418.3 sec/kimg 56.94 maintenance 7.8 gpumem 5.1
network-snapshot-004705 time 8m 55s fid50k 27.1257
tick 51 kimg 4765.8 lod 0.06 minibatch 16 time 23h 51m 22s sec/tick 3426.3 sec/kimg 57.07 maintenance 552.1 gpumem 5.1
tick 52 kimg 4825.9 lod 0.00 minibatch 16 time 1d 00h 46m sec/tick 3292.1 sec/kimg 54.84 maintenance 5.0 gpumem 5.1
tick 53 kimg 4885.9 lod 0.00 minibatch 16 time 1d 01h 40m sec/tick 3234.1 sec/kimg 53.87 maintenance 5.2 gpumem 5.1
tick 54 kimg 4945.9 lod 0.00 minibatch 16 time 1d 02h 35m sec/tick 3291.5 sec/kimg 54.83 maintenance 6.6 gpumem 5.1
tick 55 kimg 5006.0 lod 0.00 minibatch 16 time 1d 03h 30m sec/tick 3280.6 sec/kimg 54.65 maintenance 5.1 gpumem 5.1
tick 56 kimg 5066.0 lod 0.00 minibatch 16 time 1d 04h 24m sec/tick 3272.8 sec/kimg 54.52 maintenance 8.7 gpumem 5.1
tick 57 kimg 5126.0 lod 0.00 minibatch 16 time 1d 05h 18m sec/tick 3234.0 sec/kimg 53.87 maintenance 5.0 gpumem 5.1
tick 58 kimg 5186.0 lod 0.00 minibatch 16 time 1d 06h 12m sec/tick 3250.0 sec/kimg 54.14 maintenance 5.4 gpumem 5.1
tick 59 kimg 5246.1 lod 0.00 minibatch 16 time 1d 07h 07m sec/tick 3245.4 sec/kimg 54.06 maintenance 33.8 gpumem 5.1
tick 60 kimg 5306.1 lod 0.00 minibatch 16 time 1d 08h 01m sec/tick 3232.7 sec/kimg 53.85 maintenance 6.1 gpumem 5.1
network-snapshot-005306 time 9m 33s fid50k 14.5950
tick 61 kimg 5366.1 lod 0.00 minibatch 16 time 1d 09h 06m sec/tick 3283.7 sec/kimg 54.70 maintenance 596.8 gpumem 5.1
tick 62 kimg 5426.2 lod 0.00 minibatch 16 time 1d 10h 00m sec/tick 3244.0 sec/kimg 54.04 maintenance 15.0 gpumem 5.1
tick 63 kimg 5486.2 lod 0.00 minibatch 16 time 1d 10h 54m sec/tick 3234.6 sec/kimg 53.88 maintenance 9.4 gpumem 5.1
tick 64 kimg 5546.2 lod 0.00 minibatch 16 time 1d 11h 48m sec/tick 3236.9 sec/kimg 53.92 maintenance 7.0 gpumem 5.1
tick 65 kimg 5606.3 lod 0.00 minibatch 16 time 1d 12h 44m sec/tick 3316.2 sec/kimg 55.24 maintenance 9.7 gpumem 5.1
tick 66 kimg 5666.3 lod 0.00 minibatch 16 time 1d 13h 38m sec/tick 3233.3 sec/kimg 53.86 maintenance 5.7 gpumem 5.1
tick 67 kimg 5726.3 lod 0.00 minibatch 16 time 1d 14h 32m sec/tick 3232.1 sec/kimg 53.84 maintenance 5.5 gpumem 5.1
tick 68 kimg 5786.4 lod 0.00 minibatch 16 time 1d 15h 26m sec/tick 3247.6 sec/kimg 54.10 maintenance 5.6 gpumem 5.1
tick 69 kimg 5846.4 lod 0.00 minibatch 16 time 1d 16h 20m sec/tick 3250.5 sec/kimg 54.15 maintenance 16.9 gpumem 5.1
tick 70 kimg 5906.4 lod 0.00 minibatch 16 time 1d 17h 14m sec/tick 3232.9 sec/kimg 53.85 maintenance 6.6 gpumem 5.1