StyleGAN 中的映射网络如何工作?
How does Mapping Network in StyleGAN work?
我正在学习 StyleGAN 架构,但我对映射网络的用途感到困惑。在原始文件中它说:
Our mapping network consists of 8 fully-connected layers, and the
dimensionality of all input and output activations— including z and w
— is 512.
并且没有关于以任何方式训练此网络的信息。
就像,它不会生成一些无意义的值吗?
我试过创建这样的网络(但形状更小 (16,)
):
import tensorflow as tf
import numpy as np
model = tf.keras.models.Sequential()
model.add(tf.keras.Input(shape=(16)))
for i in range(7):
model.add(tf.keras.layers.Dense(16, activation='relu'))
model.compile()
然后根据一些随机值对其进行评估:
g = tf.random.Generator.from_seed(34)
model(
g.normal(shape=(16, 16))
)
我得到一些随机输出,例如:
array([[0. , 0.01045225, 0. , 0. , 0.02217731,
0.00940356, 0.02321716, 0.00556996, 0. , 0. ,
0. , 0.03117323, 0. , 0. , 0.00734158,
0. ],
[0.03159791, 0.05680077, 0. , 0. , 0. ,
0. , 0.05907414, 0. , 0. , 0. ,
0. , 0. , 0.03110216, 0.04647615, 0. ,
0.04566741],
.
. # More similar vectors goes there
.
[0. , 0.01229661, 0.00056016, 0. , 0.03534952,
0.02654905, 0.03212402, 0. , 0. , 0. ,
0. , 0.0913604 , 0. , 0. , 0. ,
0. ]], dtype=float32)>
我错过了什么?网上有没有训练Mapping Network的资料?任何数学解释?真的很困惑:(
据我所知,映射网络没有单独训练。它是生成器网络的一部分,并像网络的其他部分一样根据梯度调整权重。
在他们的 stylegan generator code implementation it written the Generator is composed of two sub networks one mapping and another synthesis. In stylegan3 generator source 中更容易看到。映射的输出被传递到生成图像的合成网络。
class Generator(torch.nn.Module):
...
def forward(self, z, ...):
ws = self.mapping(z, ...)
img = self.synthesis(ws, ...)
return img
下图显示了 stylegan 2019 paper 的映射网络。第 2 节描述了映射网络。
带映射层的生成器图
映射层在论文中用f
表示,它将噪声向量z
从正态分布初始化并映射到中间潜在表示w
。它是用 8 层 MLP 实现的。 Stylegan mapping network implementation 将 MLP 层设置为 8。
他们在第 4 节中提到,
a common goal is a latent space that consists of linear subspaces, each of which controls one factor of variation. However, the sampling probability of each combination of factors in Z
needs to match the corresponding density in the training data.
A major benefit of our generator architecture is that the intermediate latent space W
does not have to support sampling according to any fixed distribution.
因此,z
和 w
具有相同的维度,但 w
比 z
更分散。从图像的中间潜在 space W
中找到 w
允许特定的图像编辑。
来自Encoder for Editing论文,
在经过其他更改的 stylegan2-ada 论文中,他们发现映射网络深度 2 优于 8。在 stylegan3 mapping layer code implementation 中,映射中的默认层数设置为 2。
参考资料
我正在学习 StyleGAN 架构,但我对映射网络的用途感到困惑。在原始文件中它说:
Our mapping network consists of 8 fully-connected layers, and the dimensionality of all input and output activations— including z and w — is 512.
并且没有关于以任何方式训练此网络的信息。
就像,它不会生成一些无意义的值吗?
我试过创建这样的网络(但形状更小 (16,)
):
import tensorflow as tf
import numpy as np
model = tf.keras.models.Sequential()
model.add(tf.keras.Input(shape=(16)))
for i in range(7):
model.add(tf.keras.layers.Dense(16, activation='relu'))
model.compile()
然后根据一些随机值对其进行评估:
g = tf.random.Generator.from_seed(34)
model(
g.normal(shape=(16, 16))
)
我得到一些随机输出,例如:
array([[0. , 0.01045225, 0. , 0. , 0.02217731,
0.00940356, 0.02321716, 0.00556996, 0. , 0. ,
0. , 0.03117323, 0. , 0. , 0.00734158,
0. ],
[0.03159791, 0.05680077, 0. , 0. , 0. ,
0. , 0.05907414, 0. , 0. , 0. ,
0. , 0. , 0.03110216, 0.04647615, 0. ,
0.04566741],
.
. # More similar vectors goes there
.
[0. , 0.01229661, 0.00056016, 0. , 0.03534952,
0.02654905, 0.03212402, 0. , 0. , 0. ,
0. , 0.0913604 , 0. , 0. , 0. ,
0. ]], dtype=float32)>
我错过了什么?网上有没有训练Mapping Network的资料?任何数学解释?真的很困惑:(
据我所知,映射网络没有单独训练。它是生成器网络的一部分,并像网络的其他部分一样根据梯度调整权重。
在他们的 stylegan generator code implementation it written the Generator is composed of two sub networks one mapping and another synthesis. In stylegan3 generator source 中更容易看到。映射的输出被传递到生成图像的合成网络。
class Generator(torch.nn.Module):
...
def forward(self, z, ...):
ws = self.mapping(z, ...)
img = self.synthesis(ws, ...)
return img
下图显示了 stylegan 2019 paper 的映射网络。第 2 节描述了映射网络。
带映射层的生成器图
映射层在论文中用f
表示,它将噪声向量z
从正态分布初始化并映射到中间潜在表示w
。它是用 8 层 MLP 实现的。 Stylegan mapping network implementation 将 MLP 层设置为 8。
他们在第 4 节中提到,
a common goal is a latent space that consists of linear subspaces, each of which controls one factor of variation. However, the sampling probability of each combination of factors in
Z
needs to match the corresponding density in the training data.
A major benefit of our generator architecture is that the intermediate latent space
W
does not have to support sampling according to any fixed distribution.
因此,z
和 w
具有相同的维度,但 w
比 z
更分散。从图像的中间潜在 space W
中找到 w
允许特定的图像编辑。
来自Encoder for Editing论文,
在经过其他更改的 stylegan2-ada 论文中,他们发现映射网络深度 2 优于 8。在 stylegan3 mapping layer code implementation 中,映射中的默认层数设置为 2。