相关疑难解决方法(0)

将 Dropout 添加到测试/推理阶段

我已经在 Keras 中为一些时间序列训练了以下模型:

    input_layer = Input(batch_shape=(56, 3864))
    first_layer = Dense(24, input_dim=28, activation='relu',
                        activity_regularizer=None,
                        kernel_regularizer=None)(input_layer)
    first_layer = Dropout(0.3)(first_layer)
    second_layer = Dense(12, activation='relu')(first_layer)
    second_layer = Dropout(0.3)(second_layer)
    out = Dense(56)(second_layer)
    model_1 = Model(input_layer, out)
Run Code Online (Sandbox Code Playgroud)

然后我定义了一个新模型,其中包含经过训练的层,model_1并添加了具有不同速率 的 dropout 层drp

    input_2 = Input(batch_shape=(56, 3864))
    first_dense_layer = model_1.layers[1](input_2)
    first_dropout_layer = model_1.layers[2](first_dense_layer)
    new_dropout = Dropout(drp)(first_dropout_layer)
    snd_dense_layer = model_1.layers[3](new_dropout)
    snd_dropout_layer = model_1.layers[4](snd_dense_layer)
    new_dropout_2 = Dropout(drp)(snd_dropout_layer)
    output = model_1.layers[5](new_dropout_2)
    model_2 = Model(input_2, output)
Run Code Online (Sandbox Code Playgroud)

然后我得到这两个模型的预测结果如下:

result_1 = model_1.predict(test_data, batch_size=56)
result_2 = model_2.predict(test_data, batch_size=56)
Run Code Online (Sandbox Code Playgroud)

我期望得到完全不同的结果,因为第二个模型有新的 dropout 层并且这两个模型不同(IMO),但事实并非如此。两者都产生相同的结果。为什么会这样?

python neural-network deep-learning keras dropout

1
推荐指数
1
解决办法
4437
查看次数

标签 统计

deep-learning ×1

dropout ×1

keras ×1

neural-network ×1

python ×1