vegans.models.conditional 包¶
子模块¶
vegans.models.conditional.AbstractConditionalGAN1v1 模块¶
-
类
vegans.models.conditional.AbstractConditionalGAN1v1.
AbstractConditionalGAN1v1
(generator, adversary, x_dim, z_dim, y_dim, adv_type, optim=None, optim_kwargs=None, feature_layer=None, fixed_noise_size=32, device=None, ngpu=0, folder='./veganModels/cAbstractGAN1v1', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGenerativeModel.AbstractConditionalGenerativeModel
,vegans.models.unconditional.AbstractGAN1v1.AbstractGAN1v1
带有单个生成器和单个判别器/评论者结构的条件 GAN 的抽象类。例如原始的 ConditionalVanillaGAN、ConditionalWassersteinGAN 和 ConditionalWassersteinGANGP。
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.AbstractConditionalGANGAE 模块¶
-
类
vegans.models.conditional.AbstractConditionalGANGAE.
AbstractConditionalGANGAE
(generator, adversary, encoder, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, adv_type='Discriminator', feature_layer=None, fixed_noise_size=32, device=None, folder='./veganModels/cAbstractConditionalGANGAE', ngpu=0, secure=True, _called_from_conditional=False)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGenerativeModel.AbstractConditionalGenerativeModel
,vegans.models.unconditional.AbstractGANGAE.AbstractGANGAE
带有单个生成器、单个判别器/评论者和单个编码器结构的条件 GAN 的抽象类。例如 ConditionalLRGAN、ConditionalVAEGAN 和 ConditionalBicycleGAN。
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
encoder (nn.Module) – 编码器架构。在潜在空间中产生预测。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
lambda_grad (float) – 梯度重构损失的权重。将梯度的范数推向 1。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.AbstractConditionalGenerativeModel 模块¶
-
类
vegans.models.conditional.AbstractConditionalGenerativeModel.
AbstractConditionalGenerativeModel
(x_dim, z_dim, y_dim, optim, optim_kwargs, feature_layer, fixed_noise_size, device, ngpu, folder, secure)[source]¶ 基类:
vegans.models.unconditional.AbstractGenerativeModel.AbstractGenerativeModel
AbstractConditionalGenerativeModel 是 vegans 中用于条件模型的最基本构建块。所有条件 GAN 实现都应至少继承此类。
- 参数
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
-
_set_up_training
(X_train, y_train, X_test, y_test, epochs, batch_size, steps, print_every, save_model_every, save_images_every, save_losses_every, enable_tensorboard)[source]¶ 为 tensorboard 创建数据加载器、SummaryWriters 并转换保存指示器。
此函数创建训练期间所需的所有数据,如数据加载器和保存步骤。它还创建超参数字典和 steps 字典。
-
concatenate
(tensor1, tensor2)[source]¶ 根据它们的形状适当地连接两个张量。
张量1和张量2可以具有 2 或 4 个维度。
- 参数
tensor1 (torch.Tensor) – 第一个张量。
tensor2 (torch.Tensor) – 第二个张量。
- 返回
连接后的张量。
- 返回类型
torch.Tensor
-
fit
(X_train, y_train, X_test=None, y_test=None, epochs=5, batch_size=32, steps=None, print_every='1e', save_model_every=None, save_images_every=None, save_losses_every='1e', enable_tensorboard=False)[source]¶ 训练模型,迭代所有包含的网络。
- 参数
X_train (np.array) – 生成对抗网络的训练数据。通常是图像。
y_train (np.array) – 生成对抗网络的训练标签。可能是图像或独热编码向量。
X_test (np.array, optional) – 生成对抗网络的测试数据。必须与 X_train 具有相同的形状。
y_train – 生成对抗网络的测试标签。可能是图像或独热编码向量。
epochs (int, optional) – 训练期间进行的轮次(遍历训练数据集的次数)。
batch_size (int, optional) – 从 X_train 创建数据加载器时使用的批次大小。如果为 X_train 传入了 torch.utils.data.DataLoader,则忽略此参数。
steps (dict, optional) – 包含网络名称的字典,指示它们应训练的频率,例如 {“Generator”: 5} 指示生成器训练 5 次,而所有其他网络训练 1 次。
print_every (int, string, optional) – 指示经过多少批次后,应将训练数据的损失打印到控制台。也可以是以下形式的字符串:“0.25e”(每轮次 4 次)、“1e”(每轮次 1 次)或 “3e”(每第三个轮次)。
save_model_every (int, string, optional) – 指示经过多少批次后应保存模型。也可以是以下形式的字符串:“0.25e”(每轮次 4 次)、“1e”(每轮次 1 次)或 “3e”(每第三个轮次)。
save_images_every (int, string, optional) – 指示经过多少批次后应保存损失和固定噪声的图像。也可以是以下形式的字符串:“0.25e”(每轮次 4 次)、“1e”(每轮次 1 次)或 “3e”(每第三个轮次)。
save_losses_every (int, string, optional) – 指示经过多少批次后应计算训练和测试数据的损失。也可以是以下形式的字符串:“0.25e”(每轮次 4 次)、“1e”(每轮次 1 次)或 “3e”(每第三个轮次)。
enable_tensorboard (bool, optional) – 指示是否应创建子目录 folder/tensorboard 以记录损失和图像的标志。
-
generate
(y=None, z=None)[source]¶ 使用生成器生成输出。
- 参数
y (np.array) – 要生成的输出的标签。
z (None, optional) – 用于生成输出的潜在空间输入向量。
- 返回
生成器产生的输出。
- 返回类型
np.array
-
get_training_results
(by_epoch=False, agg=None)[source]¶ 训练后调用此方法以获取固定噪声样本和损失。
- 参数
by_epoch (bool, optional) – 如果为 true,则为每个 logged_loss 返回每轮次一个损失值。否则频率由 fit 的 save_losses_every 参数给出,即 save_losses_every=10 每 10 个批次保存损失,save_losses_every=”0.25e 每轮次保存损失 4 次。
agg (None, optional) – 如果 by_epoch 为 true,则使用的聚合函数,否则忽略。默认是 np.mean,用于一轮次中的所有批次。
- 返回
losses_dict – 包含训练期间记录的所有损失类型的字典
- 返回类型
dict
vegans.models.conditional.ConditionalAAE 模块¶
ConditionalAAE¶
实现了对抗自动编码器 [1] 的条件变体。
Instead of 使用 Kullback Leibler 散度改善潜在空间分布,我们 使用判别器确定潜在向量的“真实性”。
- 损失函数
编码器: Kullback-Leibler
解码器: 二元交叉熵
对抗网络: 二元交叉熵
- 默认优化器
torch.optim.Adam
- 自定义参数
lambda_z: 用于计算潜在 z 维度真实性的判别器损失的权重。
参考文献
-
类
vegans.models.conditional.ConditionalAAE.
ConditionalAAE
(generator, adversary, encoder, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, lambda_z=10, adv_type='Discriminator', feature_layer=None, fixed_noise_size=32, device=None, ngpu=0, folder='./veganModels/cAAE', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGenerativeModel.AbstractConditionalGenerativeModel
,vegans.models.unconditional.AAE.AAE
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
encoder (nn.Module) – 编码器架构。在潜在空间中产生预测。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
lambda_z (float) – 用于计算潜在 z 维度真实性的判别器损失的权重。
adv_type ("Discriminator", "Critic" or "Autoencoder") – 指示将使用哪种对抗架构。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalBicycleGAN 模块¶
ConditionalBicycleGAN¶
实现了 BicycleGAN [1],它是 VAEGAN 和 LRGAN 的组合。
它利用变分自动编码器(Kullback-Leibler 损失)的两个步骤,并使用相同的编码器架构对生成的图像进行潜在空间回归。
- 损失函数
生成器: 二元交叉熵 + L1 潜在空间损失 + L1 重构损失
判别器: 二元交叉熵
编码器: Kullback-Leibler 损失 + L1 潜在空间损失 + L1 重构损失
- 默认优化器
torch.optim.Adam
- 自定义参数
lambda_KL: 用于计算潜在空间中 Kullback-Leibler 散度的编码器损失的权重。
lambda_x: 真实 x 维度的重构损失的权重。
lambda_z: 潜在 z 维度的重构损失的权重。
参考文献
-
类
vegans.models.conditional.ConditionalBicycleGAN.
ConditionalBicycleGAN
(generator, adversary, encoder, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, lambda_KL=10, lambda_x=10, lambda_z=10, adv_type='Discriminator', feature_layer=None, fixed_noise_size=32, device=None, ngpu=0, folder='./veganModels/cBicycleGAN', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGANGAE.AbstractConditionalGANGAE
,vegans.models.unconditional.BicycleGAN.BicycleGAN
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
encoder (nn.Module) – 编码器架构。在潜在空间中产生预测。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
lambda_KL (float) – 用于计算潜在空间中 Kullback-Leibler 散度的编码器损失的权重。
lambda_x (float) – 真实 x 维度的重构损失的权重。
lambda_z (float) – 潜在 z 维度的重构损失的权重。
adv_type ("Discriminator", "Critic" or "Autoencoder") – 指示将使用哪种对抗架构。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalCycleGAN 模块¶
CycleGAN¶
实现了 CycleGAN [1],一个用于非配对图像到图像翻译任务的方法。
它由两个生成对抗网络组成。一个负责将空间 X 的输入映射到空间 Y。另一个负责将空间 Y 的输入产生空间 X 的输出。
- 损失函数
GeneratorX_Y 和 GeneratorY_X: 二元交叉熵 + 循环一致性
DiscriminatorX_Y 和 DiscriminatorY_X: 二元交叉熵
- 默认优化器
torch.optim.Adam
- 自定义参数
lambda_x: 真实 x 维度的重构损失的权重。
参考文献
-
类
vegans.models.conditional.ConditionalCycleGAN.
ConditionalCycleGAN
(generatorX_Y, adversaryX_Y, generatorY_X, adversaryY_X, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, lambda_x=10, adv_type='Discriminator', fixed_noise_size=32, device=None, ngpu=0, folder='./veganModels/cCycleGAN', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGenerativeModel.AbstractConditionalGenerativeModel
- 参数
generatorX_Y (nn.Module) – 生成器架构。从输入空间 X 在真实空间 Y 中产生输出。
adversaryX_Y (nn.Module) – 对抗网络架构。为空间 Y 中的真实和虚假样本生成预测以区分它们。
generatorY_X (nn.Module) – 生成器架构。从输入空间 Y 在真实空间 X 中产生输出。
adversaryY_X (nn.Module) – 对抗网络架构。为空间 X 中的真实和虚假样本生成预测以区分它们。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
lambda_x (float) – 真实 x 维度的重构损失的权重。
adv_type ("Discriminator", "Critic" or "Autoencoder") – 指示将使用哪种对抗架构。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalEBGAN 模块¶
ConditionalEBGAN¶
实现了基于能量的 GAN [1] 的条件变体。
使用自动编码器作为对抗网络结构。
- 损失函数
生成器: L2 (均方误差)
自动编码器: L2 (均方误差)
- 默认优化器
torch.optim.Adam
- 自定义参数
m: 铰链损失的截止值。有关更多信息,请参阅参考文献。
参考文献
-
类
vegans.models.conditional.ConditionalEBGAN.
ConditionalEBGAN
(generator, adversary, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, m=None, feature_layer=None, fixed_noise_size=32, device=None, ngpu=None, folder='./veganModels/cEBGAN', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGAN1v1.AbstractConditionalGAN1v1
,vegans.models.unconditional.EBGAN.EBGAN
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
encoder (nn.Module) – 编码器架构。在潜在空间中产生预测。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
m (float) – 铰链损失的截止值。有关更多信息,请参阅参考文献。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalInfoGAN 模块¶
ConditionalInfoGAN¶
实现了 InfoGAN [1]。
它引入了一个编码器网络,将生成器输出映射回潜在输入空间。这应该有助于防止模式崩溃并提高图像多样性。
- 损失函数
生成器: 二元交叉熵 + 正态对数似然 + 多项式对数似然
判别器: 二元交叉熵
编码器: 正态对数似然 + 多项式对数似然
- 默认优化器
torch.optim.Adam
- 自定义参数
c_dim_discrete: 离散多项式维度数量(可能是独立多项式空间的列表)。
c_dim_continuous: 连续正态维度数量。
lambda_z: 潜在 z 维度的重构损失的权重。
参考文献
-
类
vegans.models.conditional.ConditionalInfoGAN.
ConditionalInfoGAN
(generator, adversary, encoder, x_dim, z_dim, y_dim, c_dim_discrete, c_dim_continuous, optim=None, optim_kwargs=None, lambda_z=10, feature_layer=None, fixed_noise_size=32, device=None, ngpu=0, folder='./veganModels/cInfoGAN', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGenerativeModel.AbstractConditionalGenerativeModel
,vegans.models.unconditional.InfoGAN.InfoGAN
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
encoder (nn.Module) – 编码器架构。在潜在空间中产生预测。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
c_dim_discrete (int, list) – 离散多项式维度数量(可能是独立多项式空间的列表)。
c_dim_continuous (int) – 连续正态维度数量。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
lambda_z (float) – 潜在 z 维度的重构损失的权重。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalKLGAN 模块¶
ConditionalKLGAN¶
实现了 Kullback Leibler GAN 的条件变体。
对生成器使用 Kullback Leibler 损失。
- 损失函数
生成器: Kullback-Leibler
自动编码器: 二元交叉熵
- 默认优化器
torch.optim.Adam
- 自定义参数
eps: 用于防止计算 Kullback-Leibler 散度时溢出和 NaN 的小值。
参考文献
-
类
vegans.models.conditional.ConditionalKLGAN.
ConditionalKLGAN
(generator, adversary, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, eps=1e-05, feature_layer=None, fixed_noise_size=32, device=None, ngpu=None, folder='./veganModels/cKLGAN', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGAN1v1.AbstractConditionalGAN1v1
,vegans.models.unconditional.KLGAN.KLGAN
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalLRGAN 模块¶
ConditionalLRGAN¶
实现了在 BicycleGAN 论文 [1] 中得到很好描述的潜在空间回归器 GAN 的条件变体。
它引入了一个编码器网络,将生成器输出映射回潜在输入空间。这应该有助于防止模式崩溃并提高图像多样性。
- 损失函数
生成器: 二元交叉熵 + L1 潜在空间损失 (平均绝对误差)
判别器: 二元交叉熵
编码器: L1 潜在空间损失 (平均绝对误差)
- 默认优化器
torch.optim.Adam
- 自定义参数
lambda_z: 潜在 z 维度的重构损失的权重。
参考文献
-
类
vegans.models.conditional.ConditionalLRGAN.
ConditionalLRGAN
(generator, adversary, encoder, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, lambda_z=10, adv_type='Discriminator', feature_layer=None, fixed_noise_size=32, device=None, ngpu=0, folder='./veganModels/cLRGAN', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGANGAE.AbstractConditionalGANGAE
,vegans.models.unconditional.LRGAN.LRGAN
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
encoder (nn.Module) – 编码器架构。在潜在空间中产生预测。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
lambda_z (float) – 潜在 z 维度的重构损失的权重。
adv_type ("Discriminator", "Critic" or "Autoencoder") – 指示将使用哪种对抗架构。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalLSGAN 模块¶
ConditionalLSGAN¶
实现了最小二乘 GAN [1] 的条件变体。
使用 L2 范数评估真实和虚假图像的真实性。
- 损失函数
生成器: L2 (均方误差)
判别器: L2 (均方误差)
- 默认优化器
torch.optim.Adam
参考文献
-
类
vegans.models.conditional.ConditionalLSGAN.
ConditionalLSGAN
(generator, adversary, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, feature_layer=None, fixed_noise_size=32, device=None, ngpu=None, folder='./veganModels/cLSGAN', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGAN1v1.AbstractConditionalGAN1v1
,vegans.models.unconditional.LSGAN.LSGAN
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalPix2Pix 模块¶
ConditionalPix2Pix¶
实现了 Pix2Pix GAN [1]。
使用二元交叉熵评估真实和虚假图像的真实性。同时对生成的图像施加 L1 像素级惩罚。
- 损失函数
生成器: 二元交叉熵 + L1 (平均绝对误差)
判别器: 二元交叉熵
- 默认优化器
torch.optim.Adam
- 自定义参数
lambda_x: 真实 x 维度的重构损失的权重。
参考文献
-
类
vegans.models.conditional.ConditionalPix2Pix.
ConditionalPix2Pix
(generator, adversary, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, lambda_x=10, feature_layer=None, fixed_noise_size=32, device=None, ngpu=None, folder='./veganModels/cPix2Pix', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGAN1v1.AbstractConditionalGAN1v1
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
lambda_x (float) – 真实 x 维度的重构损失的权重。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalVAEGAN 模块¶
ConditionalVAEGAN¶
实现了变分自动编码器生成对抗网络 [1] 的条件变体。
对潜在空间的 Kullback-Leibler 损失进行训练,并附加一个对抗网络以获得更高质量的输出。解码器充当生成器。
- 损失函数
编码器: Kullback-Leibler
生成器/解码器: 二元交叉熵
对抗网络: 二元交叉熵
- 默认优化器
torch.optim.Adam
- 自定义参数
lambda_KL: 用于计算潜在空间中 Kullback-Leibler 散度的编码器损失的权重。
lambda_x: 真实 x 维度的重构损失的权重。
参考文献
-
类
vegans.models.conditional.ConditionalVAEGAN.
ConditionalVAEGAN
(generator, adversary, encoder, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, lambda_KL=10, lambda_x=10, adv_type='Discriminator', feature_layer=None, fixed_noise_size=32, device=None, ngpu=0, folder='./veganModels/cVAEGAN', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGANGAE.AbstractConditionalGANGAE
,vegans.models.unconditional.VAEGAN.VAEGAN
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
encoder (nn.Module) – 编码器架构。在潜在空间中产生预测。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
lambda_KL (float) – 用于计算潜在空间中 Kullback-Leibler 散度的编码器损失的权重。
lambda_x (float) – 真实 x 维度的重构损失的权重。
adv_type ("Discriminator", "Critic" or "Autoencoder") – 指示将使用哪种对抗架构。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalVanillaGAN 模块¶
ConditionalVanillaGAN¶
实现了原始生成对抗网络 [1] 的条件变体。
使用二元交叉熵评估真实和虚假图像的真实性。判别器试图对真实图像输出 1,对虚假图像输出 0,而生成器试图强制判别器对虚假图像输出 1。
- 损失函数
生成器: 二元交叉熵
判别器: 二元交叉熵
- 默认优化器
torch.optim.Adam
参考文献
-
类
vegans.models.conditional.ConditionalVanillaGAN.
ConditionalVanillaGAN
(generator, adversary, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, feature_layer=None, fixed_noise_size=32, device=None, ngpu=None, folder='./veganModels/cVanillaGAN', secure=True)[source]¶ 基类:
vegans.models.conditional.AbstractConditionalGAN1v1.AbstractConditionalGAN1v1
,vegans.models.unconditional.VanillaGAN.VanillaGAN
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalVanillaVAE 模块¶
ConditionalVanillaVAE¶
实现了变分自动编码器 [1] 的条件变体。
对 Kullback-Leibler 损失和均方误差重构损失进行训练。
- 损失函数
编码器: Kullback-Leibler
解码器: L2 (均方误差)
- 默认优化器
torch.optim.Adam
- 自定义参数
lambda_KL: 用于计算潜在空间中 Kullback-Leibler 散度的编码器损失的权重。
参考文献
-
类
vegans.models.conditional.ConditionalVanillaVAE.
ConditionalVanillaVAE
(encoder, decoder, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, lambda_KL=10, fixed_noise_size=32, device=None, ngpu=0, folder='./veganModels/cVanillaVAE', secure=True)[source]¶ 基础:
vegans.models.conditional.AbstractConditionalGenerativeModel.AbstractConditionalGenerativeModel
,vegans.models.unconditional.VanillaVAE.VanillaVAE
- 参数
encoder (nn.Module) – 编码器架构。在潜在空间中产生预测。
decoder (nn.Module) – 解码器架构。在真实空间生成输出。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
lambda_KL (float) – 用于计算潜在空间中 Kullback-Leibler 散度的编码器损失的权重。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalWassersteinGAN 模块¶
ConditionalWassersteinGAN¶
实现了 Wasserstein GAN [1] 的条件变体。
使用 Wasserstein 损失来确定真实图像和伪造图像的真实性。与原始 GAN 最小化的 Jensen-Shanon 散度相比,Wasserstein 损失具有几个理论优势。在此架构中,判别器(critic)通常在生成器的每一步训练多次。通过权重裁剪来“强制执行” Lipschitz 连续性。
- 损失函数
生成器: Wasserstein
判别器: Wasserstein
- 默认优化器
torch.optim.RMSprop
- 自定义参数
clip_val: 用于判别器维持 Lipschitz 连续性的裁剪值。
参考文献
-
class
vegans.models.conditional.ConditionalWassersteinGAN.
ConditionalWassersteinGAN
(generator, adversary, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, clip_val=0.01, feature_layer=None, fixed_noise_size=32, device=None, ngpu=None, folder='./veganModels/cWassersteinGAN', secure=True)[source]¶ 基础:
vegans.models.conditional.AbstractConditionalGAN1v1.AbstractConditionalGAN1v1
,vegans.models.unconditional.WassersteinGAN.WassersteinGAN
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
clip_val (float) – 用于判别器维持 Lipschitz 连续性的裁剪值。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。
vegans.models.conditional.ConditionalWassersteinGANGP 模块¶
ConditionalWassersteinGANGP¶
实现了 Wasserstein GAN 梯度惩罚 [1] 的条件变体。
使用 Wasserstein 损失来确定真实图像和伪造图像的真实性。与原始 GAN 最小化的 Jensen-Shanon 散度相比,Wasserstein 损失具有几个理论优势。在此架构中,判别器(critic)通常在生成器的每一步训练多次。通过梯度惩罚来“强制执行” Lipschitz 连续性。
- 损失函数
生成器: Wasserstein
判别器: Wasserstein + 梯度惩罚
- 默认优化器
torch.optim.RMSprop
- 自定义参数
lambda_grad: 梯度重建损失的权重。将梯度的范数推向 1。
参考文献
-
class
vegans.models.conditional.ConditionalWassersteinGANGP.
ConditionalWassersteinGANGP
(generator, adversary, x_dim, z_dim, y_dim, optim=None, optim_kwargs=None, feature_layer=None, fixed_noise_size=32, lmbda_grad=10, device=None, ngpu=None, folder='./veganModels/cWassersteinGANGP', secure=True)[source]¶ 基础:
vegans.models.conditional.AbstractConditionalGAN1v1.AbstractConditionalGAN1v1
,vegans.models.unconditional.WassersteinGANGP.WassersteinGANGP
- 参数
generator (nn.Module) – 生成器架构。在真实空间中产生输出。
adversary (nn.Module) – 对抗网络架构。为真实和虚假样本生成预测,以便区分它们。
x_dim (list, tuple) – 生成器的输出维度和判别器/评论者的输入维度。对于图像,这将是 [nr_channels, nr_height_pixels, nr_width_pixels]。
z_dim (int, list, tuple) – 生成器输入的潜在空间维度。可能是图像的维度。
y_dim (int, list, tuple) – 目标标签的维度。对于图像到图像翻译,可能是图像的维度,即 [nr_channels, nr_height_pixels, nr_width_pixels],或者表示类别数量的整数。
optim (dict or torch.optim) – 用于每个网络的优化器。可以是 torch.optim 中的优化器,或者一个以网络名称为键、以 torch.optim 为值的字典,例如 {“Generator”: torch.optim.Adam}。
optim_kwargs (dict) – 用于每个网络的优化器关键字参数。必须是一个以网络名称为键、以包含关键字参数的字典为值的字典,例如 {“Generator”: {“lr”: 0.0001}}。
lambda_grad (float) – 梯度重构损失的权重。将梯度的范数推向 1。
feature_layer (torch.nn.*) – 用于计算特征损失的输出层。应来自判别器或评论者。如果 feature_layer 不为 None,则原始生成器损失将被特征损失取代,特征损失介绍于 [此处](https://arxiv.org/abs/1606.03498v1)。
fixed_noise_size (int) – 日志记录时显示的图像数量。固定噪声用于生成 folder/images 子目录中的图像、tensorboard 图像标签页以及 get_training_results() 中的样本。
device (string) – 训练模型时使用的设备。可以是 “cpu” 或 “cuda”。
ngpu (int) – 如果 device == “cuda”,训练期间使用的 GPU 数量。
folder (string) – 在当前工作目录中创建一个同名文件夹。所有相关文件,如摘要、图像、模型和 tensorboard 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。