python - 在 Keras 模型中重塑编码器解码器
问题描述
我有一个简单的机器翻译模型,可以将英语句子转换为法语句子。我想先传入带有英文句子维度的模型编码器。经解码器翻译后,用法语句子维度建模输出。这里的问题是英语句子和法语句子在填充后的长度不同。如何在编码器和解码器之间进行重塑?
这是我的代码:
def encdec_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size):
learning_rate = 1e-3
input_seq = Input(input_shape[1:])
encoder = GRU(64, return_sequences=True)(input_seq)
decoder = GRU(64, return_sequences=True)(encoder)
logits = TimeDistributed(Dense(french_vocab_size))(decoder)
model = Model(input_seq, Activation('softmax')(logits))
model.compile(loss=sparse_categorical_crossentropy,
optimizer=Adam(learning_rate),
metrics=['accuracy'])
return model
生成的模型参数如下所示:
Layer (type) Output Shape Param #
_________________________________________________________________
input_13 (InputLayer) (None, 15, 1) 0
_________________________________________________________________
gru_16 (GRU) (None, 15, 64) 12672
_________________________________________________________________
gru_17 (GRU) (None, 15, 64) 24768
_________________________________________________________________
time_distributed_10 (TimeDis (None, 15, 344) 22360
_________________________________________________________________
activation_10 (Activation) (None, 15, 344) 0
_________________________________________________________________
使用输入维度(15,1)
,我想将输出维度更改为(17,1)
提前感谢您的帮助。
解决方案
推荐阅读
- java - Java使用ajax创建和下载文件不起作用
- node.js - 如何使用 npm 安装 node-win-shortcut
- node.js - node/express 中的“/register”和“register”路由是否相同?
- vb.net - 使用 async/await 从另一个任务更新 gui 时出现问题
- .net-core - 跳过 .NET Core 控制台应用程序的依赖项检查
- php - 对于将数据上传到服务器上的 PHP 脚本的私有内部公司应用程序,我应该有哪些潜在的安全问题?
- javascript - 无法获得图表 js 中显示的预期图例
- python - 从边界框计算轨迹
- powershell - 使用powershell重命名文件夹中的文件,不包括某些扩展名
- python - Chromedriver 在从某个站点获取数据时行为怪异