我的keras模型中有一个for循环,如下所示:
for t in range(Ty):
....
....
....
out = Dense(num_dec_tokens, activation='softmax')(x) # out.shape = (?, num_dec_tokens)
有没有一种方法可以在不使用列表的情况下(例如,使用lambda层)附加Ty时间的张量'out',即不使用:outputs = [],然后使用... output.append(出来)?
如果是这样,是否可以将附加张量更改为(?,Ty,num_dec_tokens)的形状,而不是(Ty,?,num_dec_tokens)的形状?
谢谢...
答案 0 :(得分:0)
一种方法是reshape输出。
outputs = []
for i in range(Ty):
out = Dense(3, activation="softmax")(x)
outputs.append(out)
output = Concatenate()(outputs)
output = Reshape([Ty,3])(output)
使用RepeatVector,我们可以转换(None, num_dec_tokens)
=> (None, Ty, num_dec_tokens)
>>> dense = Dense(num_dec_tokens, activation="softmax")(x)
>>> out = RepeatVector(Ty)(dense)
在您的情况下,您将学习Ty Dense图层,但使用RepeatVector时则不会。