有关GAN与DeepSteg的训练过程的异同

有关GAN与DeepSteg的训练过程的异同

GAN的训练

以DCGAN为例,生成对抗神经网络在训练的时候分为两步

  1. 辨别器的训练:辨别器输入的数据为生成器的数据与真实的数据,其拟合的目标是将生成器生成的数据判断为0,真实的图片判断为1,所以直接训练一个二分类器就行了。
  2. 生成器的训练:在DCGAN中生成器的输入一般为noise。生成器的目标是为了骗过辨别器,即其拟合的目标是辨别器将其生成的数据全部判断为1(真实的图片),所以生成器训练的损失为:
###D is Discriminator, G is generator
binary_crossentropy(D(G(noise)), [1] * Batch_size)

在生成器的训练中由于需要使用辨别器的输出构成生成器的损失函数,所以生成器在训练的时候辨别器的weight是不会进行更新的。具体可以这样使用

    d = discriminator_model()
    g = generator_model()
    combined = Sequential()
    combined.add(g)
    combined.add(d)
    d.compile()
    d.trainable = False
    combined.compile()
有关DeepSteg的训练

deepsteg 选用keras functional api来实现网络结构。keras functional api更加适合DeepSteg多输出的网络结构。

其首先compile了编码器,使得编码器会对编码器的结果进行参数的更新

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值