【问题标题】:Training a DNN with various noise standard deviation [duplicate]训练具有各种噪声标准偏差的 DNN [重复]
【发布时间】:2020-05-11 10:46:40
【问题描述】:

我想问一个关于噪音训练的问题。 我确实有一个 DNN,其第一层是由 stddev 定义的高斯噪声层

model.add(GaussianNoise(stddev, input_shape=(41,)))

stddev 然后可以轻松地从一个模型更改为另一个,但是如果我想在训练过程中动态更改噪声级别怎么办?

例如,我想用给定的数据集和 0.1 的 stddev 训练模型(假设有 10 个 epoch)。 然后继续使用相同或其他数据集训练相同的模型,但 stddev 为 0.02(例如 10 个 epoch)。

我正在努力动态更改stddev ... 欢迎任何想法! 干杯

【问题讨论】:

    标签: keras noise


    【解决方案1】:

    看起来不错,谢谢! 如果它可以帮助别人,我就是这样做的: 我最初的 ML 结构是通过一个函数定义的。 下面是回调函数

    stddev=[0.02, 0.01]      # I use 2 stddev for the example
    epoch_ch_stddev=5     # I want to run 5 epochs with the first stddev and then switch to the second one
    model = create_model(stddev[0])    # creation of the ML structure
    
    model.fit(X, y, epochs = 10, batch_size=1000, callbacks=[noise_change()])   # callback function for changing the stddev during the epochs.
    
    class noise_change(tf.keras.callbacks.Callback):
        def on_epoch_begin(self, epoch, logs=None):
            if epoch==epoch_ch_stddev:
                self.model.layers[0].stddev=stddev[1]
            print('updating sttdev in training')
            print('Current stddev: ', self.model.layers[0].stddev)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-01
      • 2023-03-12
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 2018-08-18
      相关资源
      最近更新 更多