【发布时间】:2017-06-14 20:00:42
【问题描述】:
我在下面的代码中定义了我的 MLP。我想提取layer_2的值。
def gater(self):
dim_inputs_data = Input(shape=(self.train_dim[1],))
dim_svm_yhat = Input(shape=(3,))
layer_1 = Dense(20,
activation='sigmoid')(dim_inputs_data)
layer_2 = Dense(3, name='layer_op_2',
activation='sigmoid', use_bias=False)(layer_1)
layer_3 = Dot(1)([layer_2, dim_svm_yhat])
out_layer = Dense(1, activation='tanh')(layer_3)
model = Model(input=[dim_inputs_data, dim_svm_yhat], output=out_layer)
adam = optimizers.Adam(lr=0.01)
model.compile(loss='mse', optimizer=adam, metrics=['accuracy'])
return model
假设layer_2的输出为矩阵形式
0.1 0.7 0.8
0.1 0.8 0.2
0.1 0.5 0.5
....
我希望将下面的内容送入 layer_3 而不是上面
0 0 1
0 1 0
0 1 0
基本上,我希望将第一个最大值转换为 1,将其他最大值转换为 0。 这在 keras 中如何实现?
【问题讨论】:
标签: keras keras-layer