ValueError: Exception encountered when calling layer "attention" (type Attention). Attention layer must be called on a list of inputs, namely [query, value] or [query, value, key]. Received: Tensor("Placeholder:0", shape=(None, 1, 12), dtype=float32). Call arguments received by layer "attention" (type Attention): • inputs=tf.Tensor(shape=(None, 1, 12), dtype=float32) • mask=None • training=False • return_attention_scores=False • use_causal_mask=False
时间: 2023-11-27 11:50:46 浏览: 263
python 使用Flask 出现 ValueError: Expected object or value 问题解决
这个错误提示说你在调用一个 Attention 层时传递的输入不符合要求。Attention 层的输入应该是一个列表,包含查询(query)、数值(value)和键(key),其中键是可选的。但是你传递的是一个形状为 (None, 1, 12) 的张量。
你需要检查一下代码,看看是不是在调用 Attention 层时传递了错误的参数。建议使用正确的输入格式调用 Attention 层,例如:
```
from tensorflow.keras.layers import Attention
attention = Attention() # 创建一个 Attention 层
output = attention([query, value]) # 传递查询和数值张量
```
其中 `query` 和 `value` 应该是形状相同的张量,例如:
```
import tensorflow as tf
query = tf.keras.Input(shape=(10, 32)) # 创建一个形状为 (None, 10, 32) 的查询张量
value = tf.keras.Input(shape=(10, 64)) # 创建一个形状为 (None, 10, 64) 的数值张量
```
希望这些提示能够帮助你解决问题。
阅读全文