Python 无法在Tensorflow 2.0中使用VGFace keras
我正在尝试使用keras VGFace图书馆来训练CNN。我已经安装了tensorflow 2.0.0-rc1、keras 2.3.1、cuda 10.1、cudnn 7.6.5,驱动程序版本是418,问题是当我尝试使用VGFace模型作为卷积基时,我得到了一个错误,下面是代码和错误Python 无法在Tensorflow 2.0中使用VGFace keras,python,keras,deep-learning,tensorflow2.0,Python,Keras,Deep Learning,Tensorflow2.0,我正在尝试使用keras VGFace图书馆来训练CNN。我已经安装了tensorflow 2.0.0-rc1、keras 2.3.1、cuda 10.1、cudnn 7.6.5,驱动程序版本是418,问题是当我尝试使用VGFace模型作为卷积基时,我得到了一个错误,下面是代码和错误 from keras_vggface.vggface import VGGFace conv_base = VGGFace(model='vgg16', include_top=False) model = m
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>
TypeError回溯(最近一次调用)
在里面
1#阿奎特拉
2 model=models.Sequential()
---->3型号。添加(conv_底座)
4.model.add(layers.flatte())
5.model.add(layers.Dense(1024,activation='relu'))
~/anaconda3/envs/vggface/lib/python3.7/site-packages/tensorflow\u core/python/training/tracking/base.py in\u method\u wrapper(self,*args,**kwargs)
455 self._self_setattr_tracking=False#pylint:disable=protected access
456试试:
-->457结果=方法(自身、*args、**kwargs)
458最后:
459 self._self_setattr_tracking=上一个值#pylint:disable=受保护访问
添加中的~/anaconda3/envs/vggface/lib/python3.7/site-packages/tensorflow\u core/python/keras/engine/sequential.py(self,layer)
156 raise TypeError('添加的图层必须为'
157“类层的实例”
-->158'找到:'+str(层))
159
160 tf_utils.assert_no_legacy_层([层])
TypeError:添加的层必须是类层的实例。发现:
感谢阅读,我希望您能告诉我为什么会出现此错误以及如何解决此错误。问题在于
keras
和tf.keras
之间的不兼容。您正在使用的库(vggface keras)使用keras
,而您的代码使用tf.keras
。这行不通
唯一可能的解决方案是对整个管道使用
keras
,或者修改vggface keras
库以使用tf.keras
,包括修改所有导入和修复出现的任何错误。问题是keras
和tf.keras
之间不兼容。您正在使用的库(vggface keras)使用keras
,而您的代码使用tf.keras
。这行不通
唯一可能的解决方案是在整个管道中使用
keras
,或者修改vggface keras
库以使用tf.keras
,包括修改所有导入和修复出现的任何错误。这里有一个页面,您可以下载带有vggface模型权重的.h5文件,因此,我们可以使用它在tensorflow中进行训练,其版本高于1.15
这是一个页面,您可以在其中下载带有VGFace模型权重的.h5文件,因此我们可以使用它在tensorflow中进行训练,其版本高于1.15
VGG Face被包装在python的deepface框架中。只需将VGG面字符串传递给模型名变量
#!pip install deepface
from deepface import DeepFace
obj = DeepFace.verify([
["img1.jpg", "img2.jpg"],
["img1.jpg", "img3.jpg"],
["img1.jpg", "img4.jpg"],
]
, model_name = "VGG-Face")
print(obj)
此块将检查img2、img3、img4之间的img1。VGG面被包装在python的deepface框架中。只需将VGG面字符串传递给模型名变量
#!pip install deepface
from deepface import DeepFace
obj = DeepFace.verify([
["img1.jpg", "img2.jpg"],
["img1.jpg", "img3.jpg"],
["img1.jpg", "img4.jpg"],
]
, model_name = "VGG-Face")
print(obj)
此区块将在img2、img3、img4之间检查img1。感谢awnser我正在做这些事情并正在努力,如果我发现我无法处理的事情,我将在那里编辑,否则我将在那里分享我的东西感谢现在感谢awnser我正在做这些事情并正在努力,如果我发现我无法处理的事情,我将在那里编辑,否则我会分享我的东西谢谢你抱歉,但这能训练神经网络吗?我可以使用除最后3层之外的所有层吗,比如w/tensorflow和keras?这将在背景中构建一个tensorflow/keras模型。你不需要再培训,但是如果你愿意的话,你仍然可以再培训。谢谢你的回复,这里的内容是我有2万个不同的人,其中大约有300张照片,我试图在ip cam流中对他们进行分类,我不知道是否制作deepface.verify将是wright Approach,你认为呢?大规模的人脸识别是用deepface中的查找功能来处理的。它会在数据库中查找一次人脸的矢量表示-(20k人x 300张图片)。然后,应用面部识别将在几秒钟内完成。《阅读我的回购协议》的文件对此进行了深刻的解释。对不起,这对神经网络的再训练有效吗?我可以使用除最后3层之外的所有层吗,比如w/tensorflow和keras?这将在背景中构建一个tensorflow/keras模型。你不需要再培训,但是如果你愿意的话,你仍然可以再培训。谢谢你的回复,这里的内容是我有2万个不同的人,其中大约有300张照片,我试图在ip cam流中对他们进行分类,我不知道是否制作deepface.verify将是wright Approach,你认为呢?大规模的人脸识别是用deepface中的查找功能来处理的。它会在数据库中查找一次人脸的矢量表示-(20k人x 300张图片)。然后,应用面部识别将在几秒钟内完成。请阅读回购协议的文档,并对其进行深入解释。