gpt4 book ai didi

python - Keras - TypeError : Output tensors to a Model must be Keras tensors - while modelling multiple input , 多输出网络

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:11 24 4
gpt4 key购买 nike

我有一个包含九个 2000 维向量的序列,作为来自 2 个双向 lstms 的 o/p。我将它们合并以获得九个 4000 dim 向量。

我需要获取这 4000 维向量中的每一个并将它们中的每一个馈送到共享的全连接层。我怎样才能做到这一点?现在我正在 reshape 合并 o/p 以馈入共享的全连接层。但是不知道有没有这个必要?

如本 link 中所述,当我尝试对整个网络建模以获取多个 i/p 并生成多个 o/p 时,出现此错误

可以找到代码here .

# we can then concatenate the two vectors:
N=3
merge_cv = merge([top_out, btm_out], mode='concat')#concat_axis=2 or -1 (last dim axis)
cv = Reshape((9,1, 4000))(merge_cv) # we want 9 vectors of dimension 4000 each for sharedfc_out below

#number of output classes per cell
n_classes = 80
sharedfc_out= Dense(output_dim=n_classes,input_dim=4000,activation='relu')
#partial counts
#pc = np.ndarray(shape=(1,n_classes), dtype=float)
#cells_pc = np.array([[pc for j in range(N)] for i in range(N)])
outpc=[]

for i in range(N):
for j in range(N):
# cells_pc[i][j] = sharedfc_out(cv[N*i+j])
outpc.append(sharedfc_out(cv[0][N*i+j]))

# out=merge(outpc,mode='concat')
# out2=Reshape(720)(out)

model = Model(input=cells_in, output=outpc)

bi=lstm o/p 的维度

>>> merge_cv.shape
TensorShape([Dimension(1), Dimension(None), Dimension(4000)])
>>> cv.shape
TensorShape([Dimension(None), Dimension(9), Dimension(1), Dimension(4000)])

最后一行出现类型错误。

TypeError                                 Traceback (most recent call last)
in ()
----> 1 model = Model(input=cells_in, output=outpc)

/home/jkl/anaconda3/lib/python3.5/site-packages/keras/engine/topology.py in __init__(self, input, output, name)
1814 cls_name = self.__class__.__name__
1815 raise TypeError('Output tensors to a ' + cls_name + ' must be '
-> 1816 'Keras tensors. Found: ' + str(x))
1817 # Build self.output_layers:
1818 for x in self.outputs:

TypeError: Output tensors to a Model must be Keras tensors. Found: Tensor("Relu_9:0", shape=(1, 80), dtype=float32)

最佳答案

所以最后发现问题出在错误的列表切片上,最终将 None 作为一层传递给列表,然后将列表合并到一个输入中。修复此问题并使切片一致后 - 问题解决了。

关于python - Keras - TypeError : Output tensors to a Model must be Keras tensors - while modelling multiple input , 多输出网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42746901/

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