我正在尝试运行可以在此处找到的基线模型:https ://github.com/gniknoil/FG2020-kinship/tree/master/Track1
这是代码:
def baseline_model():
input_1 = Input(shape=(224, 224, 3))
input_2 = Input(shape=(224, 224, 3))
base_model = VGGFace(model='resnet50', include_top=False)
for x in base_model.layers[:-3]:
x.trainable = True
x1 = base_model(input_1)
x2 = base_model(input_2)
x1=GlobalMaxPool2D()(x1)
x2=GlobalAvgPool2D()(x2)
x3 = Subtract()([x1, x2])
x3 = Multiply()([x3, x3])
x1_ = Multiply()([x1, x1])
x2_ = Multiply()([x2, x2])
x4 = Subtract()([x1_, x2_])
x5 = Multiply()([x1, x2])
x = Concatenate(axis=-1)([x3, x4, x5])
# x = Dense(512, activation="relu")(x)
# x = Dropout(0.03)(x)
x = Dense(128, activation="relu")(x)
x = Dropout(0.02)(x)
out = Dense(1, activation="sigmoid")(x)
model = Model([input_1, input_2], out)
model.compile(loss="binary_crossentropy", metrics=['acc'], optimizer=adamv2.Adam(0.00001))
#model.compile(loss=[focal_loss(alpha=.25, gamma=2)], metrics=['acc'], optimizer=Adam(0.00003))
#model.compile(loss=[focal_loss(alpha=.25, gamma=2)], metrics=['acc'], optimizer=Adam(0.00001))
model.summary()
return model
我得到了错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/var/folders/1x/xq_p1_3x2wj0drhvr109gkfh0000gn/T/ipykernel_7112/1473799896.py in <module>
----> 1 model = baseline_model()
/var/folders/1x/xq_p1_3x2wj0drhvr109gkfh0000gn/T/ipykernel_7112/726929419.py in baseline_model()
31
32 def baseline_model():
---> 33 input_1 = Input(shape=(224, 224, 3))
34 input_2 = Input(shape=(224, 224, 3))
35
~/opt/anaconda3/envs/env-kinship/lib/python3.8/site-packages/keras/engine/input_layer.py in Input(shape, batch_shape, name, dtype, sparse, tensor)
173 if not dtype:
174 dtype = K.floatx()
--> 175 input_layer = InputLayer(batch_input_shape=batch_shape,
176 name=name, dtype=dtype,
177 sparse=sparse,
~/opt/anaconda3/envs/env-kinship/lib/python3.8/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~/opt/anaconda3/envs/env-kinship/lib/python3.8/site-packages/keras/engine/input_layer.py in __init__(self, input_shape, batch_size, batch_input_shape, dtype, input_tensor, sparse, name)
37 if not name:
38 prefix = 'input'
---> 39 name = prefix + '_' + str(K.get_uid(prefix))
40 super(InputLayer, self).__init__(dtype=dtype, name=name)
41
~/opt/anaconda3/envs/env-kinship/lib/python3.8/site-packages/keras/backend/tensorflow_backend.py in get_uid(prefix)
72 """
73 global _GRAPH_UID_DICTS
---> 74 graph = tf.get_default_graph()
75 if graph not in _GRAPH_UID_DICTS:
76 _GRAPH_UID_DICTS[graph] = defaultdict(int)
~/opt/anaconda3/envs/env-kinship/lib/python3.8/site-packages/tensorflow/python/util/deprecation_wrapper.py in __getattr__(self, name)
115 call_location = _call_location()
116 if not call_location.startswith('<'): # skip locations in Python source
--> 117 logging.warning(
118 'From %s: The name %s is deprecated. Please use %s instead.\n',
119 _call_location(), full_name, rename)
~/opt/anaconda3/envs/env-kinship/lib/python3.8/site-packages/tensorflow/python/platform/tf_logging.py in warning(msg, *args, **kwargs)
164 @tf_export(v1=["logging.error"])
165 def error(msg, *args, **kwargs):
--> 166 get_logger().error(msg, *args, **kwargs)
167
168
~/opt/anaconda3/envs/env-kinship/lib/python3.8/logging/__init__.py in warning(self, msg, *args, **kwargs)
1456 """
1457 if self.isEnabledFor(WARNING):
-> 1458 self._log(WARNING, msg, args, **kwargs)
1459
1460 def warn(self, msg, *args, **kwargs):
~/opt/anaconda3/envs/env-kinship/lib/python3.8/logging/__init__.py in _log(self, level, msg, args, exc_info, extra, stack_info, stacklevel)
1575 #IronPython can use logging.
1576 try:
-> 1577 fn, lno, func, sinfo = self.findCaller(stack_info, stacklevel)
1578 except ValueError: # pragma: no cover
1579 fn, lno, func = "(unknown file)", 0, "(unknown function)"
TypeError: _logger_find_caller() takes from 0 to 1 positional arguments but 2 were given
我怎样才能解决这个问题?
我的 Keras 版本是 2.2.4 我的张量流版本是 1.14.0 我使用的是 python 3.8.1 和 anaconda 环境。
我在这里尝试了解决方案:https ://medium.com/the-rising-tilde/typeerror-logger-find-caller-takes-from-0-to-1-positional-arguments-but-2-were- given-cb24b74a6125 不起作用