循环创建密集层

时间:2019-08-18 04:58:32

标签: keras

我需要通过for循环创建多个密集层,迭代次数取决于标签数。我想为每个标签创建一个密集层。每个标签具有一组不同的特征,因此我想分别预测每个标签以及每个密集层中的对应特征集。那可能吗?以下代码是我的尝试。

layers = []
for i in range(num_labels):
    h1 = Dense(num_genes_per+10, kernel_initializer='normal', input_dim = num_genes_per, activation='relu')(inputs)
    h2 = Dense(int(num_genes_per/2), kernel_initializer='normal', activation='relu')(h1) 
    output= Dense(1, kernel_initializer='normal', activation='linear')(h2)
    layers.append(output)

merged_output = concatenate(layers, axis=1)
model = Model(inputs, merged_output)

每个h2的输出将具有形状[batch,1],并且merged_output将具有形状[batch,num_labels]。上面的代码有错误吗?

我知道效率不高,但是如果我将一组不同的特征连接到一个输入张量中,并且仅使用一个密集层来同时预测所有标签,这会损害预测准确性吗?

1 个答案:

答案 0 :(得分:0)

这取决于您定义特征和标签的方式。如果使用特征1、2和3来预测标签1,并且它们与标签2没有关系,则将其包含在标签3推断中就没有意义。