gpt4 book ai didi

python - ValueError : Data cardinality is ambiguous. 请提供共享相同第一维的数据

转载 作者:行者123 更新时间:2023-12-03 19:08:30 26 4
gpt4 key购买 nike

我正在尝试创建一个具有多个输入分支的 keras 模型,但 keras 不喜欢输入具有不同的大小。
这是一个最小的例子:

import numpy as np

from tensorflow import keras
from tensorflow.keras import layers


inputA = layers.Input(shape=(2,))
xA = layers.Dense(8, activation='relu')(inputA)

inputB = layers.Input(shape=(3,))
xB = layers.Dense(8, activation='relu')(inputB)

merged = layers.Concatenate()([xA, xB])

output = layers.Dense(8, activation='linear')(merged)

model = keras.Model(inputs=[inputA, inputB], outputs=output)


a = np.array([1, 2])
b = np.array([3, 4, 5])

model.predict([a, b])
这导致错误:
ValueError: Data cardinality is ambiguous:
x sizes: 2, 3
Please provide data which shares the same first dimension.
在 keras 中是否有更好的方法来做到这一点?我已经阅读了引用相同错误的其他问题,但我并没有真正理解我需要改变什么。

最佳答案

您需要以正确的格式传递数组...(n_batch,n_feat)。一个简单的 reshape 就足以创建批量维度

import numpy as np
from tensorflow import keras
from tensorflow.keras import layers


inputA = layers.Input(shape=(2,))
xA = layers.Dense(8, activation='relu')(inputA)

inputB = layers.Input(shape=(3,))
xB = layers.Dense(8, activation='relu')(inputB)

merged = layers.Concatenate()([xA, xB])

output = layers.Dense(8, activation='linear')(merged)

model = keras.Model(inputs=[inputA, inputB], outputs=output)


a = np.array([1, 2]).reshape(1,-1)
b = np.array([3, 4, 5]).reshape(1,-1)

model.predict([a, b])

关于python - ValueError : Data cardinality is ambiguous. 请提供共享相同第一维的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62951662/

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