《深度学习项目案例开发》课件——任务七:使用使用对抗神经网络生成图片.pptx
任务七:使用使用对抗神经网络生成图片项目概述、读取数据集人工智能学院—
1.任务导入
任务总结
任务七:使用使用对抗神经网络生成图片工作任务-训练判别器生成器人工智能学院—
1.任务导入
任务总结
任务七:使用使用对抗神经网络生成图片创建判别器生成器损失函数人工智能学院—
1.任务导入
任务总结
任务七:使用使用对抗神经网络生成图片工作任务-创建判别器、生成器人工智能学院—
1.任务导入
任务总结
任务七:使用使用对抗神经网络生成图片工作任务-生成手写字体图片人工智能学院—
1.任务导入
任务总结
任务七:使用使用对抗神经网络生成图片DGGAN判别器人工智能学院—
DGGAN判别器01DGGAN损失02DGGAN优化器03DGGAN训练04
DGGAN判别器/01
判别器(Discriminator)的作用至关重要。其主要功能是区分真实数据和生成数据,从而指导生成器(Generator)生成更加逼真的数据。判别器的主要任务是接收输入数据,并判断该数据是来自真实的训练数据集还是生成器生成的伪造数据,其输出通常是一个概率值,表示输入数据是真实数据的概率。判别器作用
通过对生成器生成的数据进行判别,判别器为生成器提供反馈信号,生成器根据这些反馈不断调整自身参数,优化生成数据,使其更接近真实数据分布。在训练过程中,生成器和判别器进行“对抗”训练,生成器试图生成逼真的数据以欺骗判别器,而判别器则尽力提高判别准确率,这种对抗机制推动生成器生成更逼真的数据,提升GAN的整体表现。判别器作用
DGGAN的判别器通常包括一系列卷积层、批归一化层、激活函数(通常是LeakyReLU)以及全连接层,最终输出一个用于判别输入图像是输入参数,如下图所示。DGGAN判别器结构
判别器从训练集或者生成器中获取输入的数据例如在生成手写字体识别图片时,输入的是一张手写字体的图片,大小为(28,28,1)。输入层通常使用reshape函数将输入图像重新形状变换,例如reshape【x,(-1,28,28,1)】。DGGAN判别器输入
在判别器中通常使用判别器块来逐步减少图像的尺寸并增加通道数,从而提取特征。每个判别器块包括一个卷积层、一个批归一化层和一个LeakyReLU激活函数,可以包含多个块。全连接层和批归一化层
判别器模型通过卷积层提取图像特征,批归一化层提高训练稳定性,全连接层进行分类,最终输出2个神经元的结果,用于二分类任务,激活函数使用LeakyReLU。DGGAN判别器输出
DGGAN损失/02
生成器的目标是生成足够真实的照片,以欺骗判别器,使其认为这些生成的图像是真实的。生成器希望最大化判别器对生成图像的分类为真实图像的概率,也就是生成器表现良好,判别器会把生成的图片判别为真实的图片(或者1)。生成器损失
这里使用sparse_softmax_cross_entropy_with_logits(logits,labels)函数计算损失,它需要传入两个参数:logits,形状为[batch_size,num_classes]的浮点型张量,表示模型的未归一化预测值(即逻辑回归的输入值)。Labels,形状为[batch_size]的整数型张量,表示每个样本的真实标签。标签值范围为[0,num_classes]。它返回一个形状为[batch_size]的张量,表示每个样本的交叉熵损失。生成器损失计算方法
对于生成器,要求Labels的值为1,所以这里使用labels=tf.ones([batch_size],dtype=tf.int32)生成标签,logits的值是经过生成输出的值reconstructed_image。得到的形状为[batch_size]的张量,返回一个包含每个样本损失的张量。最后使用tf.reduce_mean对所有样本的损失求平均,得到最终的平均损失值。sparse_softmax_cross_entropy_with_logits函数广泛用于多分类任务中的模型训练,如图像分类、文本分类等。当类别标签是稀疏的整数编码时(而不是one-hot编码),使用该函数可以方便地计算损失。生成器损失计算方法
判别器(Discriminator)在生成对抗网络(GAN)中的作用是对输入的数据进行分类,判断其是来自真实数据分布还是生成器生成的假数据。判别器的损失函数设计是为了使其能够有效地区分真实数据和生成数据,从而指导生成器的训练过程。判别器接收输入数据,可以是真实数据(从训练集中来)或者生成器生成的数据(通过生成器产生的假数据)。输出是一个单值(或概率),表示判别器认为输入数据是真实数据的可能性。DGGAN判别器损失
对于真实数据,判别器应该输出一个接近于1的值,表示它将真实数据判别为真实的概率。对于