簡體   English   中英

如何在 keras 測試期間激活高斯噪聲層?

[英]how do I activate Gaussian noise layer during test in keras?

我在 keras 的 my.network 中使用了高斯噪聲層,但我認為它僅在訓練期間有效,在測試階段處於非活動狀態。 有沒有辦法在測試期間激活它? 如果我想在火車上顯示這一層的output,怎么辦? 我也有一個關於Keras中cropping2D的問題,如果我需要隨機裁剪在不同位置裁剪圖層output,我該怎么辦? 因為 Cropping2D 通常裁剪圖像的中心。 謝謝。

image = Input((28, 28, 1))
conv1 = Conv2D(64, (5, 5),padding='same', name='convl1e',dilation_rate=(2,2))(image)
bncv1=BatchNormalization()(conv1)
act1=Activation('relu')(bncv1)
decoded_noise = GaussianNoise(0.5)(act1)
#decoded_noise=Cropping2D(cropping=(6,6))(act1)#16
pred_w = Conv2D(1, (1, 1),padding='same', name='reconstructed_W',dilation_rate=(2,2))(decoded_noise)
bncv18=BatchNormalization()(pred_w)
act18=Activation('sigmoid', name='wprim')(bncv18)  
img_extraction=Model(inputs=image,outputs=act18)

您可以基於 GaussianNoise 創建新的 class,只需稍作修改。 您只需要稍微調整調用 function 即可。

class AlwaysActiveGaussianNoise(GaussianNoise):

    def call(self, inputs, training=None):
        def noised():
            return inputs + self._random_generator.random_normal(
                shape=tf.shape(inputs),
                mean=0.0,
                stddev=self.stddev,
                dtype=inputs.dtype,
            )

         return noised()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM