暹罗神经网络-Python模块对象不可调用 孪生神经网络
我正在尝试实现暹罗神经网络,并运行此代码暹罗神经网络-Python模块对象不可调用 孪生神经网络,python,neural-network,conv-neural-network,siamese-network,Python,Neural Network,Conv Neural Network,Siamese Network,我正在尝试实现暹罗神经网络,并运行此代码 def build_network(conv_model): input_shape = (105, 105, 1) input1 = Input(input_shape) input2 = Input(input_shape) model = conv_model(input_shape) model_output_left = model(input1) model_output_right =
def build_network(conv_model):
input_shape = (105, 105, 1)
input1 = Input(input_shape)
input2 = Input(input_shape)
model = conv_model(input_shape)
model_output_left = model(input1)
model_output_right = model(input2)
def l1_distance(x):
return K.abs(x[0] - x[1])
def l1_distance_shape(x):
print(x)
return x[0]
# merged_model = Merge([model1, model2], mode=l1_distance, output_shape=lambda x: x[0])
merged_model = merge([model_output_left, model_output_right], mode=l1_distance, output_shape=l1_distance_shape)
output = Dense(1, activation='sigmoid')(merged_model)
siamese_model = Model([input1, input2], output)
return siamese_model
然后我跑去做模型
siamese_model1 = build_network(conv_model)
siamese_model1.compile(loss='binary_crossentropy', optimizer=Adam(0.00006), metrics=['acc'])
siamese_model1.summary()
然后我得到了错误
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-28-7405baecdb7f> in <module>()
----> 1 siamese_model1 = build_network(conv_model)
2 siamese_model1.compile(loss='binary_crossentropy', optimizer=Adam(0.00006), metrics=['acc'])
3 siamese_model1.summary()
<ipython-input-27-294ae7b24fbc> in build_network(conv_model)
20
21 # merged_model = Merge([model1, model2], mode=l1_distance, output_shape=lambda x: x[0])
---> 22 merged_model = merge([model_output_left, model_output_right], mode=l1_distance, output_shape=l1_distance_shape)
23 output = Dense(1, activation='sigmoid')(merged_model)
24 siamese_model = Model([input1, input2], output)
TypeError: 'module' object is not callable
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->1暹罗模式1=构建网络(conv模式)
2暹罗模型1.compile(loss='binary'u crossentropy',optimizer=Adam(0.00006),metrics=['acc']))
3暹罗模式1.总结()
内置网络(conv模型)
20
21#合并#模型=合并([model1,model2],模式=l1#距离,输出#形状=λx:x[0])
--->22合并模型=合并([模型输出左,模型输出右],模式=l1距离,输出形状=l1距离形状)
23输出=密集(1,激活='sigmoid')(合并型)
24暹罗_模型=模型([input1,input2],输出)
TypeError:“模块”对象不可调用
有人帮我解决这个问题吗?或者评论如何解决它?在哪里定义了
merge
?看起来这是一个函数,但它没有意识到它,您需要在某处导入或定义它吗?什么是merge
?看起来它是一个模块,而您希望将其用作函数/对象构造函数。它是类别还是功能?请为我们提供更多的代码。注释掉的行表明Merge
是一个类。在哪里定义了Merge
?看起来这是一个函数,但它没有意识到它,您需要在某处导入或定义它吗?什么是merge
?看起来它是一个模块,而您希望将其用作函数/对象构造函数。它是类别还是功能?请为我们提供更多的代码。注释掉的行表明Merge
是一个类。