如何从Keras中的神经网络输出二维矩阵,并为每一列应用softmax?

时间:2019-05-21 21:27:17

标签: python-3.x tensorflow keras neural-network

我正在尝试实现一个神经网络,该神经网络为每列输出具有softmax激活的二维矩阵。

我已经使用下面的代码完成了此操作,但是当列数增加时,它看起来非常慢。

input = Input(shape=[100])
h1 = Dense(200, activation='relu')(input)
output = []
for i in range(n_cols):
    output.append(Dense(n_rows, activation='softmax')(h1))
outputs = concatenate(output, axis=1)
model = Model(inputs=input, outputs=output)

有人可以给我建议更快的方法吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用list comprehension,它通常比for循环快{em> 。

代替:

output = []
for i in range(n_cols):
    output.append(Dense(n_rows, activation='softmax')(h1))

您可以尝试:

output = [(Dense(n_rows, activation='softmax')(h1)) for i in range(n_cols)]

但是,一般而言,您添加的列越多,速度就越慢。