Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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
Tensorflow Keras中均衡学习率的实现_Tensorflow_Keras_Deep Learning_Generative Adversarial Network - Fatal编程技术网

Tensorflow Keras中均衡学习率的实现

Tensorflow Keras中均衡学习率的实现,tensorflow,keras,deep-learning,generative-adversarial-network,Tensorflow,Keras,Deep Learning,Generative Adversarial Network,我试图在我的GAN中实现一个均衡的学习率。我已使用stddev使用正态分布初始化权重,并将我所在层的调用函数更改为: def call(self, inputs): he_constant = tf.sqrt( x=2. / tf.size(input=self.kernel, out_type=tf.float32) ) self.kernel = self.kernel * he_constant return super(EqualizedC

我试图在我的GAN中实现一个均衡的学习率。我已使用stddev使用正态分布初始化权重,并将我所在层的调用函数更改为:

def call(self, inputs):
    he_constant = tf.sqrt(
        x=2. / tf.size(input=self.kernel, out_type=tf.float32)
    )
    self.kernel = self.kernel * he_constant
    return super(EqualizedConv2D, self).call(inputs)
但计算出的he_常数非常小,例如0.004,这导致网络无法学习任何东西。我以人为地增加这个值来结束


我遗漏了什么?

我想,我已经找到了解决方案,我正在使用缩放权重,而不是替换它们。结果,甘学得很好,损失也更合理。 新的实施:

def call(self, inputs):
    return super(EqualizedConv2D, self).call(inputs)
    # --- disabled rest equalized learning rate for now, does not work as expected.
    outputs = backend.conv2d(
        inputs,
        self.kernel*self.scale,
        strides=self.strides,
        padding=self.padding,
        data_format=self.data_format,
        dilation_rate=self.dilation_rate)
    outputs = backend.bias_add(
        outputs,
        self.bias,
        data_format=self.data_format)
    if self.activation is not None:
        return self.activation(outputs)
    return outputs

如果仍然不正确,请告诉我。

设置self.kernel是否有问题?缩放的权重应该只用于“调用”而不是存储为缩放的吗?尝试过了,重新实现了调用,所以缩放的权重只用于后端。conv2d,结果不是随机的,但我得到了奇怪的效果,看起来像模式崩溃,因为爆发几乎变成了一种颜色,但变化非常快,我使用了这个,还没有经历过任何问题-同样的想法,很好