gpt4 book ai didi

tensorflow - 函数式 API 中长度可变的 Keras 嵌入层

转载 作者:行者123 更新时间:2023-12-03 23:56:36 25 4
gpt4 key购买 nike

我有以下适用于可变长度输入的顺序模型:

m = Sequential()
m.add(Embedding(len(chars), 4, name="embedding"))
m.add(Bidirectional(LSTM(16, unit_forget_bias=True, name="lstm")))
m.add(Dense(len(chars),name="dense"))
m.add(Activation("softmax"))
m.summary()

给出以下总结:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
embedding (Embedding) (None, None, 4) 204
_________________________________________________________________
bidirectional_2 (Bidirection (None, 32) 2688
_________________________________________________________________
dense (Dense) (None, 51) 1683
_________________________________________________________________
activation_2 (Activation) (None, 51) 0
=================================================================
Total params: 4,575
Trainable params: 4,575
Non-trainable params: 0

但是,当我尝试在功能 API 中实现相同的模型时,我不知道我尝试了什么,因为输入层形状似乎与顺序模型不同。这是我的尝试之一:
charinput = Input(shape=(4,),name="input",dtype='int32')
embedding = Embedding(len(chars), 4, name="embedding")(charinput)
lstm = Bidirectional(LSTM(16, unit_forget_bias=True, name="lstm"))(embedding)
dense = Dense(len(chars),name="dense")(lstm)
output = Activation("softmax")(dense)

这是摘要:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input (InputLayer) (None, 4) 0
_________________________________________________________________
embedding (Embedding) (None, 4, 4) 204
_________________________________________________________________
bidirectional_1 (Bidirection (None, 32) 2688
_________________________________________________________________
dense (Dense) (None, 51) 1683
_________________________________________________________________
activation_1 (Activation) (None, 51) 0
=================================================================
Total params: 4,575
Trainable params: 4,575
Non-trainable params: 0

最佳答案

使用 shape=(None,)在输入层,在你的情况下:

charinput = Input(shape=(None,),name="input",dtype='int32')

关于tensorflow - 函数式 API 中长度可变的 Keras 嵌入层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45460227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com