You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Flickr8k图像字幕模型时触发TypeError: use_causal_mask参数异常

解决TensorFlow图像字幕任务中MultiHeadAttention的use_causal_mask参数报错

问题情况

将TensorFlow官方图像字幕教程中的特征提取模型从MobileNetV3替换为InceptionV3,处理Flickr8k数据集时触发TypeError:

TypeError: call() got an unexpected keyword argument 'use_causal_mask'

错误来自因果自注意力层对tf.keras.layers.MultiHeadAttention的调用,移除该参数后模型可正常运行。

问题根因

use_causal_mask是TensorFlow 2.10及以上版本新增的参数,若当前使用的TensorFlow版本低于该阈值,调用时传入此参数就会触发参数不识别的错误。

解决办法

方法1:直接移除参数

这是已验证有效的快速修复方式——删除MultiHeadAttention调用中的use_causal_mask参数,模型即可正常运行。

方法2:手动构建因果掩码(保留原逻辑)

若需要维持因果自注意力的功能,在低版本TensorFlow中可以手动生成掩码替代该参数:

# 获取解码器输入的序列长度
seq_len = tf.shape(decoder_inputs)[1]
# 生成下三角掩码,实现因果注意力效果
causal_mask = tf.linalg.band_part(tf.ones((seq_len, seq_len)), -1, 0)
# 用attention_mask参数传入掩码
attention_output = multi_head_attention(
    query=decoder_inputs,
    value=decoder_inputs,
    key=decoder_inputs,
    attention_mask=causal_mask
)

方法3:升级TensorFlow版本

将TensorFlow升级到2.10或更高版本,即可直接使用use_causal_mask参数,无需修改代码。

内容的提问来源于stack exchange,提问作者Arijit Hazra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:38:26