Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在使用keras时,BN层如何在DCGAN中工作?_Python_Keras_Deep Learning_Batch Normalization_Dcgan - Fatal编程技术网

Python 在使用keras时,BN层如何在DCGAN中工作?

Python 在使用keras时,BN层如何在DCGAN中工作?,python,keras,deep-learning,batch-normalization,dcgan,Python,Keras,Deep Learning,Batch Normalization,Dcgan,我使用版本为2.2.4的keras在CelebA数据集上训练DCGAN。我对keras功能API实现感到困惑,比如DCGAN体系结构中的BN层的预测 在训练期间,我需要使用生成器.predict(noise)来获得一些假图像,用于鉴别器训练。我需要在训练期间抽取样本,以显示网络是否在使用生成器.predict(noise)进行改进我也知道,在鉴别器训练过程中,生成器生成的假图像应该在训练模式下通过生成器中的BN层,当从生成器中提取样本时,该方法应在测试模式下进行。因为我在这两种情况下都使用了预测

我使用版本为2.2.4的keras在CelebA数据集上训练DCGAN。我对keras功能API实现感到困惑,比如DCGAN体系结构中的BN层的预测

在训练期间,我需要使用生成器.predict(noise)来获得一些假图像,用于鉴别器训练。我需要在训练期间抽取样本,以显示网络是否在使用生成器.predict(noise)进行改进我也知道,在鉴别器训练过程中,生成器生成的假图像应该在训练模式下通过生成器中的BN层,当从生成器中提取样本时,该方法应在测试模式下进行。因为我在这两种情况下都使用了预测方法,我想知道如何确保训练和测试模式在该方法中正确使用。任何人都可以告诉我是否完成了训练,当我使用预测方法时,BN层处于哪种模式。谢谢

在一次迭代中,代码如下所示:

noise=np.random.normal(0,1,size=(批处理大小,噪声大小))
假批=生成器。预测(噪声)#BN层是否处于训练模式?
real\u batch=数据加载程序。加载数据(批大小)
#列车鉴别器
鉴别器。批量训练(真实批量,np.批量(批量大小)*0.9)
鉴别器。批量训练(假批量,np.零(批量大小))
#列车发电机
鉴别器.trainable=False
noise=np.random.normal(0,1,size=(批大小,noise\u dims))
组合模型。批量培训(噪音,np.ONE(批量大小))
#组合_模型由模型(噪声、鉴别器(发生器(噪声))建立)
#我还想知道这个生成器和鉴别器调用是否处于训练模式
如果iter%sample_interval==0:
noise=np.random.normal(0,1,size=(样本大小,噪声大小))
发电机(噪声)
#BN层是否在测试模式下运行?
想知道我对DCGAN中BN层的理解是否正确,以及keras中的预测方法如何处理BN或辍学中的培训或测试模式。最后,如果可能,如何在使用keras时手动控制DCGAN培训中的模式(设置学习阶段?)