第G5周:Pix2Pix理论与实战

  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊 | 接辅导、项目定制
  • 🚀 文章来源:K同学的学习圈子

一、背景知识

1.1 图像翻译

图像内容(Image Content):图像中包含的主要信息和对象,如物体、场景、结构等。图像内容是指图像中的实际物体或场景,通常用来描述图像中的主要特征和信息。

图像域(Image Domain):图像域指的是图像数据的空间范围或特定属性。在图像翻译中,不同的图像域可能表示不同的特征或属性,如黑白图像域、彩色图像域、草图图像域等。

图像翻译(Image Translation):图像翻译是指将一个图像从一个域(如黑白图像)转换到另一个域(如彩色图像)的过程。这种技术可以实现不同图像域之间的转换,如图像风格转换、图像去噪、图像增强等。

1.2 CGAN

前两周的博客记录已经有更详细介绍了,如有需求可以跳转。
第G3周:CGAN入门|生成手势图像
第G4周:CGAN|生成手势图像 | 可控制生成

Conditional Generative Adversarial Network(CGAN)生成对抗网络(GAN)的一种变体,它在生成器和判别器之间引入了条件信息。这种条件信息可以是类别标签、文本描述、图像等,使得生成器可以根据条件信息生成具有特定属性的图像。

CGAN结构:

  • CGAN由两部分组成:生成器(Generator)判别器(Discriminator)。生成器接收一个随机噪声向量 z z z和条件信息 c c c作为输入,生成器的任务是将这两部分信息映射到目标图像空间。判别器接收生成器生成的图像和条件信息 c c c,并判断输入图像是真实图像还是生成图像。

  • 生成器和判别器的结构可以根据具体任务和需求而定,通常采用卷积神经网络(CNN)或全连接神经网络设计。生成器和判别器的结构可以根据具体任务和需求而定,通常采用卷积神经网络(CNN)或全连接神经网络设计。

CGAN工作原理:

  • 生成器生成图像:生成器接收一个随机噪声向量 z z z和条件信息 c c c作为输入,通过学习将这两部分信息映射到目标图像空间,生成与条件信息匹配的图像。

  • 判别器区分真假:判别器接收生成器生成的图像和条件信息 c c c,并判断输入图像是真实图像还是生成图像。判别器的目标是尽可能准确地区分真实图像和生成图像。

  • 对抗训练:生成器和判别器相互对抗地进行训练。生成器试图生成足够逼真的图像来欺骗判别器,而判别器试图准确区分真实图像和生成图像。通过对抗训练,生成器不断提高生成图像的逼真度,判别器不断提高区分真伪的能力。

  • 生成器优化:生成器通过最小化生成图像被判别为假的概率来优化自身参数,使得生成的图像更加逼真,同时欺骗判别器。

  • 判别器优化:判别器通过最大化正确区分真实和生成图像的概率来优化自身参数,提高判别的准确性。

1.3 UNet

编码器-解码器(Encoder-Decoder)结构:

  • 编码器:编码器负责将输入图像逐渐降采样为高级别的特征表示。通常采用卷积层和池化层来实现这一过程,以捕获图像中的局部特征。
  • 解码器:解码器负责将编码器提取的特征图逐步上采样为与输入图像相同分辨率的输出。解码器通常采用反卷积层和上采样操作,同时结合跳跃连接来保留更丰富的信息。

跳跃连接(Skip Connections):

  • 跳跃连接是UNet中的关键设计特点,通过将编码器中某一层的特征图与解码器对应的层特征图进行连接,实现跨层级信息传递。
    跳跃连接有助于解决传统编码器-解码器结构中信息丢失和分辨率损失的问题,提高了网络对细节和局部信息的捕捉能力。

多层次特征融合:

  • UNet通过跳跃连接实现了多层次特征融合,将不同层级的特征信息进行融合,从而在解码器端获得更丰富的信息。
    多层次特征融合有助于网络学习到更全局和局部的特征表示,提高了网络的表达能力和对复杂场景的理解能力。
    在这里插入图片描述

二、Pix2Pix

参考文章

2.1 Pix2Pix特点

Pix2Pix结合了UNet结构和生成对抗网络(GAN)的特点,实现了高质量的图像到图像的转换。其特点主要体现在以下方面:

  1. UNet结构

    • UNet是一种用于图像分割的网络结构,具有编码器-解码器的架构和跳跃连接(skip connections)的特点。
    • 在Pix2Pix中,生成器采用了UNet结构,编码器部分用于提取输入图像的特征表示,解码器部分用于将特征表示解码为目标域图像。
    • 跳跃连接允许信息在编码器和解码器之间直接传递,有助于保留更多的细节信息,提高了转换的准确性。
  2. 生成对抗网络(GAN)

    • Pix2Pix引入了生成对抗网络(GAN)的概念,通过同时训练生成器和判别器来实现图像到图像的转换任务。
    • 生成器负责将输入图像转换为目标域图像,判别器则用于区分生成的估计图像和真实的目标图像。
    • 通过对抗训练的方式,生成器学习生成逼真的图像,判别器学习区分真实图像和生成图像,促使生成器学习更好的转换映射。

Pix2Pix通过结合UNet的特征提取和跳跃连接机制以及生成对抗网络(GAN)的对抗训练机制,实现了高质量的图像到图像的转换。这种结合使得Pix2Pix能够在保留细节信息的同时生成逼真的目标域图像,广泛应用于图像翻译、风格转换等任务中。

2.2 Pix2Pix原理

在这里插入图片描述
它采用UNet编码器-解码器(Encoder-Decoder)结构,生成器输入为真实图像 x x x和随机噪声 z z z,判别器输入为生成器生成的 G ( x ) G(x) G(x)和真实图像 x x x(可对照前面对CGAN介绍)。

2.3 损失函数

参考CGAN可得到Pix2Pix损失函数公式,如下:

  1. 生成器的损失函数:
    L GAN ( G , D ) = E x , y [ log ⁡ D ( x , y ) ] + E x [ log ⁡ ( 1 − D ( x , G ( x ) ) ) ] \mathcal{L}_{\text{GAN}}(G, D) = \mathbb{E}_{x,y}[\log D(x, y)] + \mathbb{E}_x[\log(1 - D(x, G(x)))] LGAN(G,D)=Ex,y[logD(x,y)]+Ex[log(1D(x,G(x)))]

  2. L1 loss损失函数:
    L L1 ( G ) = E x , y , z [ ∣ ∣ y − G ( x , z ) ∣ ∣ 1 ] \mathcal{L}_{\text{L1}}(G) = \mathbb{E}_{x,y,z}[||y - G(x, z)||_1] LL1(G)=Ex,y,z[∣∣yG(x,z)1]

  3. 最终的目标函数:
    L ( G , D ) = L GAN ( G , D ) + λ L L1 ( G ) \mathcal{L}(G, D) = \mathcal{L}_{\text{GAN}}(G, D) + \lambda \mathcal{L}_{\text{L1}}(G) L(G,D)=LGAN(G,D)+λLL1(G)

2.4 结构分析

Pix2Pix 生成器和判别器的结构如下:

  1. 生成器(Generator)

    • 生成器采用 U-Net 结构,包括编码器(Encoder)和解码器(Decoder)部分。
    • 编码器负责将输入的轮廓或标签图片进行特征提取和压缩。
    • 解码器负责将编码器输出的特征图解码并生成最终的合成图像。
    • 生成器还包括跳跃连接(Skip Connections),有助于保留细节信息。
      在这里插入图片描述
  2. 判别器(Discriminator)

    • 判别器采用 PatchGAN 结构,将输入图像切分成多个小块进行判别。
    • 每个小块对应一个输出结果,从而提高对局部结构的感知能力。
    • PatchGAN 判别器有助于生成更加细致和逼真的图像。
      在这里插入图片描述

三、代码运行

在这里插入图片描述

Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 0/10] [Batch 0/506] [D loss: 1.647789] [G loss: 60.340595, pixel: 0.581072, adv: 2.233401] ETA: 1 day, 1:25:43.998771Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 0/10] [Batch 500/506] [D loss: 0.142009] [G loss: 29.688620, pixel: 0.290967, adv: 0.591954] ETA: 1:27:49.591770Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 0/10] [Batch 505/506] [D loss: 0.053237] [G loss: 51.577415, pixel: 0.502725, adv: 1.304922] ETA: 1:34:02.564807Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 1/10] [Batch 494/506] [D loss: 0.070610] [G loss: 46.547913, pixel: 0.459572, adv: 0.590704] ETA: 1:18:55.368929Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 1/10] [Batch 505/506] [D loss: 0.123835] [G loss: 30.472618, pixel: 0.300761, adv: 0.396541] ETA: 1:20:11.961080Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 2/10] [Batch 488/506] [D loss: 0.026758] [G loss: 37.314384, pixel: 0.364822, adv: 0.832226] ETA: 1:01:29.325409Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 2/10] [Batch 505/506] [D loss: 0.014538] [G loss: 40.809853, pixel: 0.397772, adv: 1.032671] ETA: 1:04:14.834893Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 3/10] [Batch 482/506] [D loss: 0.052123] [G loss: 31.460102, pixel: 0.303137, adv: 1.146399] ETA: 0:55:04.997478Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 3/10] [Batch 505/506] [D loss: 0.079315] [G loss: 35.501881, pixel: 0.349199, adv: 0.582012] ETA: 0:58:02.538474Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 4/10] [Batch 476/506] [D loss: 0.030885] [G loss: 30.457699, pixel: 0.294100, adv: 1.047739] ETA: 0:49:40.476074Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 4/10] [Batch 505/506] [D loss: 0.028141] [G loss: 38.486000, pixel: 0.373164, adv: 1.169581] ETA: 0:44:54.406027Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 5/10] [Batch 470/506] [D loss: 0.038394] [G loss: 32.262707, pixel: 0.311849, adv: 1.077832] ETA: 0:41:14.786348Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 5/10] [Batch 505/506] [D loss: 0.039467] [G loss: 37.964828, pixel: 0.370645, adv: 0.900284] ETA: 0:32:56.709133Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 6/10] [Batch 464/506] [D loss: 0.023386] [G loss: 29.847828, pixel: 0.289348, adv: 0.913019] ETA: 0:28:14.697390Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 6/10] [Batch 505/506] [D loss: 0.017719] [G loss: 37.603901, pixel: 0.366791, adv: 0.924826] ETA: 0:25:02.061517Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 7/10] [Batch 458/506] [D loss: 0.045083] [G loss: 34.635059, pixel: 0.332324, adv: 1.402660] ETA: 0:18:18.177452Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 7/10] [Batch 505/506] [D loss: 0.014225] [G loss: 25.492990, pixel: 0.243784, adv: 1.114637] ETA: 0:17:42.465789Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 8/10] [Batch 452/506] [D loss: 0.008428] [G loss: 28.374493, pixel: 0.273673, adv: 1.007191] ETA: 0:10:20.948391Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 8/10] [Batch 505/506] [D loss: 0.013490] [G loss: 25.190414, pixel: 0.240928, adv: 1.097572] ETA: 0:10:25.141053Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 9/10] [Batch 446/506] [D loss: 0.034311] [G loss: 41.953709, pixel: 0.413027, adv: 0.651020] ETA: 0:00:56.186142Namespace(b1=0.5, b2=0.999, batch_size=1, channels=3, checkpoint_interval=-1, dataset_name=‘data_facades’, decay_epoch=100, epoch=0, img_height=256, img_width=256, lr=0.0002, n_cpu=8, n_epochs=10, sample_interval=500)
[Epoch 9/10] [Batch 505/506] [D loss: 0.009487] [G loss: 39.018578, pixel: 0.380509, adv: 0.967647] ETA: 0:00:00.993219
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冒泡排序 快速排序 归并排序 其他排序

书接上回.. 目录 2.3 交换排序 2.3.1冒泡排序 2.3.2 快速排序 快速排序的优化: 快速排序非递归 2.4 归并排序 基本思想 归并排序非递归 海量数据的排序问题 排序算法时间空间复杂度和稳定性总结 四. 其他非基于比较排序 (了解) 2.3 交换排序 基本思想:…

[技术杂谈]解决windows上出现文件名太长错误

最近执行python setup.py install总是失败,提示文件名太长发现网上有取消限制文件名长度,测试发现改完注册表无需重启cmd就生效了。但是有时候会失败,现在方法放这。 转到Windows“开始”,然后键入REGEDIT。选择注册表编辑器 选…

淘宝app商品数据API接口|item_get_app-获得淘宝app商品详情原数据

获得淘宝app商品详情原数据 API返回值说明 item_get_app-获得淘宝app商品详情原数据 公共参数​​​​​​ 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地…

Linux离线安装mysql,node,forever

PS:本文是基于centos7实现的,要求系统能够查看ifconfig和unzip解压命令, 实现无网络可安装运行 首先现在百度网盘的离线文件包****安装Xftp 和 Xshell 把机房压缩包传到 home目录下****解压unzip 包名.zip 获取IP先获取到 linux 主机的ip ifconfig Xftp 连接输入IP,然后按照…

蓝牙信标定位精度

蓝牙信标定位精度受到多种因素的影响,包括设备硬件、环境因素以及信号干扰等。因此,蓝牙信标的精度并不是固定的,而是会在一定范围内波动。 在我们实际应用过程中,蓝牙信标的精度通常可以做到2-5米。本文重点介绍下影响蓝牙信标精…

StarRocks 助力小红书离线数仓提效,提升百倍回刷性能!

数据处理效率一直是大数据时代的核心话题,它推动着各类数据执行引擎持续迭代产品。从早期的 MapReduce,到今天的 Spark,各行业正不断演进其离线数仓技术架构。 现有以 Spark 为核心的数仓架构在处理大规模数据回刷方面已取得进展&#xff0c…

数组的概述

数组的概述 为什么需要数组 需求分析1: 需要统计某公司50个员工的工资情况,例如计算平均工资、找到最高工资等。用之前知识,首先需要声明50个变量来分别记录每位员工的工资,这样会很麻烦。因此我们可以将所有的数据全部存储到一…

day07-缓存商品、购物车

1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。 结果: 系统响应慢、用户体验差 1.2 实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓…

vue脚手架创建项目:账号登录(利用element-ui快速开发)(取消eslint强制格式)(修改端口号)

新手看不懂,老手不用看系列 文章目录 一、准备工作1.1 取消强制格式检查1.2 导入依赖,注册依赖 二、去element-ui官网找样式写Login组件2.1 引用局部组件2.2 运行项目 三、看一下发现没问题,开始修改前端的代码四、修改端口号4.1 修改后端端口…

Michael.W基于Foundry精读Openzeppelin第52期——ERC4626.sol

Michael.W基于Foundry精读Openzeppelin第52期——ERC4626.sol 0. 版本0.1 ERC4626.sol 1. 目标合约2. 代码精读2.1 constructor()2.2 maxDeposit(address) && previewDeposit(uint256 assets) && deposit(uint256 assets, address receiver)2.3 maxMint(addres…

君正X2100 RTOS JPEG硬件编码

一、配置 进入SDK的tools/iconfigtool/IConfigToolApp目录,执行./IConfigTool指令,进入配置界面: Config.in 是生成配置界面的文件,Config是需要修改的配置文件,选择之后点击Open。 选择 xburst2系列CPU->X2000系列…

Harmony OS 网络编程 实验指南

netcat简介 netcat 是什么? netcat是一个非常强大的网络实用工具,可以用它来调试TCP/UDP应用程序; netcat 如何安装? Linux上可以使用发行版的包管理器安装,例如Debian/Ubuntu上: sudo apt-get instal…

别想宰我,怎么查看云厂商是否超卖?详解 cpu steal time

据说有些云厂商会超卖,宿主有 96 个核心,结果卖出去 100 多个 vCPU,如果这些虚机负载都不高,大家相安无事,如果这些虚机同时运行一些高负载的任务,相互之间就会抢占 CPU,对应用程序有较大影响&a…

缺省和重载。引用——初识c++

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 C输入&输出cout 和cin<<>> 缺省参数全缺省半缺省应用场景声明和定义分离的情况 函数重载1.参数的类型不同2.参数的个数不同3.参数的顺…

生成可读取配置文件的独立运行jar程序

前言: 周五刚躺下,前线打来语音要个下载文件的小程序,下载路径和下载码需要根据配置获取,程序需要在服务器执行。当然配置的设计是个人设计的,不然每次更新下载码都要重新出具jar包,太麻烦。多年没写独立运行的jar包了,翻阅了相关资料,最终还是功夫不负有心人。想着这种…

Redis锁,乐观锁与悲观锁

锁 悲观锁 认为什么时候都会出问题&#xff0c;无论做什么都会加锁 乐观锁 很乐观&#xff0c;认为什么时候都不会出问题&#xff0c;所以不会上锁。 更新数据时去判断一下&#xff0c;在此期间&#xff0c;是否有人修改过这个数据 应用于&#xff1a;秒杀场景 **watch*…

小折叠手机如何经久耐用?收下这份日常养护指南

不同于普通手机的玻璃屏幕&#xff0c;折叠机出于折叠的特性&#xff0c;使用了柔性屏幕。因此撕除原厂保护膜时&#xff0c;由于贴膜较强的粘合力&#xff0c;很容易就会导致屏幕产生不可修复的损伤。 这也是为什么各大手机厂商都不允许折叠机私自贴膜的原因&#xff0c;并且…

从产品组装和维护/维修的角度来看,基于增强现实的指导:关于挑战和机遇的最新综述

作者&#xff1a; 1. M. Eswaran 2. Anil Kumar Gulivindala 3. M.V.A.Raju Bahubalendruni 关于本文 •分析了增强现实在装配和维护/维修中的作用。 •讨论了AR辅助制造系统的软件和硬件元素。 •讨论了AR跟踪和配准技术面临的挑战。 •讨论了AR辅助制造系统的未来…

视频素材app有哪些?视频素材网址推荐

在这个视觉传达愈发重要的时代&#xff0c;拥有一款好的无水印短视频素材网站就如同握有一把打开创意之门的钥匙&#xff0c;选择合适的短视频素材平台至关重要&#xff0c;这会让你的视频制作更加轻松而高效。 1&#xff0c;蛙学府 以其广泛的优质视频素材库而闻名&#xff0…

Maven发布开源框架到远程仓库

1.背景 当你写了一个自我感觉良好的开源工具希望给他人分享&#xff0c;如果只是在github等网站进行公布之外&#xff0c;用户使用起来还不是很方便&#xff0c;特别是当你提供是特定领域的基础工具。你还可以把它部署到中央仓库&#xff0c;这样别人使用就会方便很多。接下来…