python - 连体神经网络 - Python 模块对象不可调用
问题描述
连体网络
我正在尝试实现连体神经网络,并运行此代码
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
我有人帮我解决这个问题吗?或评论如何解决?
解决方案
您可以merge
用Lambda
图层替换。
from keras.layers import Lambda
merged_model = Lambda(l1_distance, output_shape=l1_distance_shape)([model_output_left, model_output_right])
推荐阅读
- c++ - 错误 - 未在此范围内声明 int 'counter'
- arm - VMSS 的 Keyvault 扩展
- android - 发现:组合多个“-exec”语句不适用于 toybox / Android?
- networking - STM32F4x以太网MAC DMA状态寄存器中的“Early Transmit Interrupt”是什么?
- excel - 有没有办法通过 VBA 中的 winapi 覆盖光标行为?
- java - 使用嵌套列表进行分组和求和
- mysql - MySQL/VB.NET(Winform) - 如何正确使用@var?
- ios - 可以以编程方式点击文本字段并粘贴用户名/密码吗?登录未保存在钥匙串中
- c# - 为什么 C# WPF 按钮绑定命令在使用简单注入器后不会改变视图?
- powershell - 如何在 Powershell 中分配和引用包含方括号的环境变量