我正在尝试使用https://github.com/rcmalli/keras-vggface中的keras-vggface库来训练CNN。我已经安装了tensorflow 2.0.0-rc1,keras 2.3.1,cuda 10.1,cudnn 7.6.5,驱动程序的版本是418,问题是当我尝试使用vggface模型作为卷积基础时,我得到了错误,这是代码和错误
from keras_vggface.vggface import VGGFace
conv_base = VGGFace(model='vgg16', include_top=False)
model = models.Sequential()
model.add(conv_base)
model.add(layers.Flatten())
model.add(layers.Dense(1024, activation='relu'))
model.add(layers.Dense(800, activation='softmax'))
错误!
TypeError Traceback (most recent call last)
<ipython-input-4-f6b5cad8f44b> in <module>
1 #arquitectura
2 model = models.Sequential()
----> 3 model.add(conv_base)
4 model.add(layers.Flatten())
5 model.add(layers.Dense(1024, activation='relu'))
~/anaconda3/envs/vggface/lib/python3.7/site-packages/tensorflow_core/python/training/tracking/base.py in _method_wrapper(self, *args, **kwargs)
455 self._self_setattr_tracking = False # pylint: disable=protected-access
456 try:
--> 457 result = method(self, *args, **kwargs)
458 finally:
459 self._self_setattr_tracking = previous_value # pylint: disable=protected-access
~/anaconda3/envs/vggface/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/sequential.py in add(self, layer)
156 raise TypeError('The added layer must be '
157 'an instance of class Layer. '
--> 158 'Found: ' + str(layer))
159
160 tf_utils.assert_no_legacy_layers([layer])
TypeError: The added layer must be an instance of class Layer. Found: <keras.engine.training.Model object at 0x7f0bf03db210>
希望您能告诉我为什么会出现此错误以及如何解决该错误,感谢您的阅读。
问题是keras
和之间不兼容tf.keras
。您正在使用的库(vggface-keras)使用keras
,而您的代码使用tf.keras
。这行不通。
唯一可能的解决方案是keras
用于整个管道,或修改vggface-keras
要使用的库tf.keras
,包括修改所有导入内容并修复出现的所有错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句