Python 3.x ValueError:维度必须相等,但对于';为2和0;损失/辍学(1)损失/转学(x27);(op:';Sub';)具有以下输入形状:[?,2,1],?,0,1]

Python 3.x ValueError:维度必须相等,但对于';为2和0;损失/辍学(1)损失/转学(x27);(op:';Sub';)具有以下输入形状:[?,2,1],?,0,1],python-3.x,keras,deep-learning,Python 3.x,Keras,Deep Learning,我是新来的深度学习者。我的代码中发生了什么 我将发布代码和错误 我想做resnet+triple-loss ValueError:尺寸必须相等,但输入形状为[?,2,1],?,0,1]的“丢失/丢失\u 1\u丢失/子”(op:“子”)的尺寸为2和0 #定义模型----------------------------------------- 输入尺寸=X1。形状[1:] #打印(输入尺寸) 输入a=输入(形状=输入尺寸)# 输入b=输入(形状=输入尺寸) 输入c=输入(形状=输入尺寸) 模型

我是新来的深度学习者。我的代码中发生了什么 我将发布代码和错误 我想做resnet+triple-loss

ValueError:尺寸必须相等,但输入形状为[?,2,1],?,0,1]的“丢失/丢失\u 1\u丢失/子”(op:“子”)的尺寸为2和0


#定义模型-----------------------------------------
输入尺寸=X1。形状[1:]
#打印(输入尺寸)
输入a=输入(形状=输入尺寸)#
输入b=输入(形状=输入尺寸)
输入c=输入(形状=输入尺寸)
模型a=resnet50.resnet50(weights=“imagenet”,包括:top=True,input\u tensor=input\u a)
模型=resnet50.resnet50(weights=“imagenet”,包括:top=True,input\u tensor=input\u b)
模型c=resnet50.resnet50(weights=“imagenet”,包括:top=True,input\u tensor=input\u c)
对于模型_a.层中的层:
如果(layer.name!=“fc1000”):
layer.trainable=错误
layer.name=layer.name+“\u 1”
对于模型层中的层:
如果(layer.name!=“fc1000”):
layer.trainable=错误
layer.name=layer.name+“\u 2”
对于模型层中的层:
如果(layer.name!=“fc1000”):
layer.trainable=错误
layer.name=layer.name+“\u 3”
共享的\u fc1000=模型\u a.get\u层('fc1000\u 1')
#重量转移
a=模型a.获取层(“平均池1”).输出
b=模型获取层(“平均池2”)。输出
c=模型c.获取层(“平均池3”)。输出
已处理\u a=共享\u fc1000(a)
已处理\u b=共享\u fc1000(b)
已处理\u c=共享\u fc1000(c)
正距离=λ(欧几里德距离,输出形状=欧几里德距离,输出形状)([processed_a,processed_b])
负距离=λ(欧几里德距离,输出形状=欧几里德距离,输出形状)([processed_a,processed_c])
堆叠距离=λ(
lambda向量:K.堆栈(向量,轴=1),
输出\u形状=eucl\u距离\u输出\u形状
)([正区,负区])
模型=模型([输入a、输入b、输入c],输出=辍学(0.25)(堆叠距离))
model.summary()
rms=RMSprop()
compile(loss=triplet\u loss,optimizer=rms)