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 的抽象类。例如原始的 ConditionalVanillaGANConditionalWassersteinGANConditionalWassersteinGANGP

参数
  • 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 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。

calculate_losses(X_batch, Z_batch, y_batch, who=None)[source]

使用 1v1 架构计算 GAN 的损失。

此方法在 AbstractGenerativeModel 的主要 fit() 循环内调用。

参数
  • X_batch (torch.Tensor) – 当前 x 批次。

  • Z_batch (torch.Tensor) – 当前 z 批次。

  • who (None, optional) – 应被训练的网络名称。

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 的抽象类。例如 ConditionalLRGANConditionalVAEGANConditionalBicycleGAN

参数
  • 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 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。

calculate_losses(X_batch, Z_batch, y_batch, who=None)[source]

使用 1v1 架构计算 GAN 的损失。

此方法在 AbstractGenerativeModel 的主要 fit() 循环内调用。

参数
  • X_batch (torch.Tensor) – 当前 x 批次。

  • Z_batch (torch.Tensor) – 当前 z 批次。

  • who (None, optional) – 应被训练的网络名称。

encode(x, y=None)[source]

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_fixed_labels()[source]
get_training_results(by_epoch=False, agg=None)[source]

训练后调用此方法以获取固定噪声样本和损失。

参数
  • by_epoch (bool, optional) – 如果为 true,则为每个 logged_loss 返回每轮次一个损失值。否则频率由 fitsave_losses_every 参数给出,即 save_losses_every=10 每 10 个批次保存损失,save_losses_every=”0.25e 每轮次保存损失 4 次。

  • agg (None, optional) – 如果 by_epoch 为 true,则使用的聚合函数,否则忽略。默认是 np.mean,用于一轮次中的所有批次。

返回

losses_dict – 包含训练期间记录的所有损失类型的字典

返回类型

dict

predict(x, y=None)[source]

使用评论者/判别器预测输入是真实还是虚假。

参数
  • x (np.array) – 要预测的图像或样本。

  • y (np.array) – 要预测的输出的标签。

返回

一个数组,每个 x 对应一个输出,指示输入的真实性。

返回类型

np.array

vegans.models.conditional.ConditionalAAE 模块

ConditionalAAE

实现了对抗自动编码器 [1] 的条件变体。

Instead of 使用 Kullback Leibler 散度改善潜在空间分布,我们 使用判别器确定潜在向量的“真实性”。

损失函数
  • 编码器: Kullback-Leibler

  • 解码器: 二元交叉熵

  • 对抗网络: 二元交叉熵

默认优化器
  • torch.optim.Adam

自定义参数
  • lambda_z: 用于计算潜在 z 维度真实性的判别器损失的权重。

参考文献

1

https://arxiv.org/pdf/1511.05644.pdf

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 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。

calculate_losses(X_batch, Z_batch, y_batch, who=None)[source]
encode(x, y=None)[source]

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 维度的重构损失的权重。

参考文献

1

https://arxiv.org/pdf/1711.11586.pdf

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 维度的重构损失的权重。

参考文献

1

https://arxiv.org/abs/1703.10593

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 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。

calculate_losses(X_batch, Z_batch, y_batch, who=None)[source]
generate(y, z=None, who='GeneratorX_Y')[source]

使用生成器生成输出。

参数
  • y (np.array) – 要生成的输出的标签。

  • z (None, optional) – 用于生成输出的潜在空间输入向量。

返回

生成器产生的输出。

返回类型

np.array

predict(x, y, who='AdversaryX_Y')[source]

使用评论者/判别器预测输入是真实还是虚假。

参数
  • x (np.array) – 要预测的图像或样本。

  • y (np.array) – 要预测的输出的标签。

返回

一个数组,每个 x 对应一个输出,指示输入的真实性。

返回类型

np.array

vegans.models.conditional.ConditionalEBGAN 模块

ConditionalEBGAN

实现了基于能量的 GAN [1] 的条件变体。

使用自动编码器作为对抗网络结构。

损失函数
  • 生成器: L2 (均方误差)

  • 自动编码器: L2 (均方误差)

默认优化器
  • torch.optim.Adam

自定义参数
  • m: 铰链损失的截止值。有关更多信息,请参阅参考文献。

参考文献

1

https://arxiv.org/pdf/1609.03126.pdf

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 维度的重构损失的权重。

参考文献

1

https://dl.acm.org/doi/10.5555/3157096.3157340

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 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。

calculate_losses(X_batch, Z_batch, y_batch, who=None)[source]
encode(x, y=None)[source]
generate(y, c=None, z=None)[source]

使用生成器/解码器生成输出。

参数
  • z (None, optional) – 用于生成输出的潜在空间输入向量。

  • y (np.array) – 要生成的输出的标签。

返回

生成器/解码器产生的输出。

返回类型

np.array

vegans.models.conditional.ConditionalKLGAN 模块

ConditionalKLGAN

实现了 Kullback Leibler GAN 的条件变体。

对生成器使用 Kullback Leibler 损失。

损失函数
  • 生成器: Kullback-Leibler

  • 自动编码器: 二元交叉熵

默认优化器
  • torch.optim.Adam

自定义参数
  • eps: 用于防止计算 Kullback-Leibler 散度时溢出和 NaN 的小值。

参考文献

1

https://www.inference.vc/an-alternative-update-rule-for-generative-adversarial-networks/

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 维度的重构损失的权重。

参考文献

1

https://arxiv.org/pdf/1711.11586.pdf

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

参考文献

1

https://openaccess.thecvf.com/content_ICCV_2017/papers/Mao_Least_Squares_Generative_ICCV_2017_paper.pdf

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 维度的重构损失的权重。

参考文献

1

https://arxiv.org/abs/1611.07004

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 维度的重构损失的权重。

参考文献

1

https://arxiv.org/pdf/1512.09300.pdf

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

参考文献

1

https://papers.nips.cc/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf

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 散度的编码器损失的权重。

参考文献

1

https://arxiv.org/pdf/1906.02691.pdf

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 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。

calculate_losses(X_batch, Z_batch, y_batch, who=None)[source]
encode(x, y=None)[source]

vegans.models.conditional.ConditionalWassersteinGAN 模块

ConditionalWassersteinGAN

实现了 Wasserstein GAN [1] 的条件变体。

使用 Wasserstein 损失来确定真实图像和伪造图像的真实性。与原始 GAN 最小化的 Jensen-Shanon 散度相比,Wasserstein 损失具有几个理论优势。在此架构中,判别器(critic)通常在生成器的每一步训练多次。通过权重裁剪来“强制执行” Lipschitz 连续性。

损失函数
  • 生成器: Wasserstein

  • 判别器: Wasserstein

默认优化器
  • torch.optim.RMSprop

自定义参数
  • clip_val: 用于判别器维持 Lipschitz 连续性的裁剪值。

参考文献

1

https://export.arxiv.org/pdf/1701.07875

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。

参考文献

1

https://arxiv.org/abs/1704.00028

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 输出都将写入此处。现有文件夹不会被覆盖或删除。如果同名文件夹已存在,则会附加时间戳以使其唯一。

模块内容