我想通过一个模型传递两个输入,然后需要连接两个输入并通过第二个模型,其中两个输入共享model1的权重,如下面的代码所示:
x = Conv2D(64, (3, 3))(input0)
#x = BatchNormalization()(x)
x = MaxPooling2D((2, 2))(x)
out = Flatten()(x)
model1 = Model(input0, out)
model1 = Model(input0, out)
out_a = model1(input1)
out_b = model1(input2)
concatenated = keras.layers.concatenate([out_a, out_b])
out = Dense(1, activation='sigmoid')(concatenated)
model2 = Model([input1, input2], out)
如上所述,没有批量标准化。但是,如果我取消注释BatchNormalization,则代码会出现以下错误:
ValueError: Variable batch_normalization_5/moving_mean/biased already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally defined at
我如何解决此错误。
完整模型的图如下所示:
当使用具有tensorflow 1.3的多个GPU时,人们收到此错误消息,但是,我的错误消息相同但错误原因不同。
答案 0 :(得分:0)
通过将tensorflow 1.3升级到1.4来解决问题。