Tensorboard 和 Dropout 层
Tensorboard and Dropout Layers
我有一个非常基本的查询。我制作了 4 个几乎相同的(不同之处在于输入形状)CNN,并在连接到全连接层的前馈网络时合并了它们。
几乎相同的 CNN 的代码:
model3 = Sequential()
model3.add(Convolution2D(32, (3, 3), activation='relu', padding='same',
input_shape=(batch_size[3], seq_len, channels)))
model3.add(MaxPooling2D(pool_size=(2, 2)))
model3.add(Dropout(0.1))
model3.add(Convolution2D(64, (3, 3), activation='relu', padding='same'))
model3.add(MaxPooling2D(pool_size=(2, 2)))
model3.add(Flatten())
但是在张量板上我看到所有的Dropout层都是相互连接的,Dropout1的颜色与Dropout2、3、4等颜色不同,它们都是相同的颜色。
我知道这是一个老问题,但我自己也遇到了同样的问题,现在我才意识到这是怎么回事
Dropout 仅在我们训练模型时应用。这应该在我们 evaluating/predicting 时停用。为此,keras 创建了一个 learning_phase
占位符,如果我们正在训练模型,则设置为 1.0
。
此占位符在您创建的第一个 Dropout
层内创建,并在所有层之间共享。这就是您在那里看到的!
我有一个非常基本的查询。我制作了 4 个几乎相同的(不同之处在于输入形状)CNN,并在连接到全连接层的前馈网络时合并了它们。
几乎相同的 CNN 的代码:
model3 = Sequential()
model3.add(Convolution2D(32, (3, 3), activation='relu', padding='same',
input_shape=(batch_size[3], seq_len, channels)))
model3.add(MaxPooling2D(pool_size=(2, 2)))
model3.add(Dropout(0.1))
model3.add(Convolution2D(64, (3, 3), activation='relu', padding='same'))
model3.add(MaxPooling2D(pool_size=(2, 2)))
model3.add(Flatten())
但是在张量板上我看到所有的Dropout层都是相互连接的,Dropout1的颜色与Dropout2、3、4等颜色不同,它们都是相同的颜色。
我知道这是一个老问题,但我自己也遇到了同样的问题,现在我才意识到这是怎么回事
Dropout 仅在我们训练模型时应用。这应该在我们 evaluating/predicting 时停用。为此,keras 创建了一个 learning_phase
占位符,如果我们正在训练模型,则设置为 1.0
。
此占位符在您创建的第一个 Dropout
层内创建,并在所有层之间共享。这就是您在那里看到的!