Merge pull request #961 from serengil/feat-task-2001-build-model-return-type

DeepFace.build_model should return any
This commit is contained in:
Sefik Ilkin Serengil 2024-01-20 22:06:19 +00:00 committed by GitHub
commit 70b4f1a722
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 28 additions and 40 deletions

View File

@ -29,27 +29,23 @@ logger = Logger(module="DeepFace")
warnings.filterwarnings("ignore")
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 2:
tf.get_logger().setLevel(logging.ERROR)
from tensorflow.keras.models import Model
else:
from keras.models import Model
# -----------------------------------
functions.initialize_folder()
def build_model(model_name: str) -> Union[Model, Any]:
def build_model(model_name: str) -> Any:
"""
This function builds a deepface model
Parameters:
model_name (string): face recognition or facial attribute model
VGG-Face, Facenet, OpenFace, DeepFace, DeepID for face recognition
Age, Gender, Emotion, Race for facial attributes
Args:
model_name (string): face recognition or facial attribute model
VGG-Face, Facenet, OpenFace, DeepFace, DeepID for face recognition
Age, Gender, Emotion, Race for facial attributes
Returns:
built deepface model ( (tf.)keras.models.Model )
built model with corresponding class
"""
return modeling.build_model(model_name=model_name)

View File

@ -1,6 +1,5 @@
import os
import gdown
import tensorflow as tf
from deepface.commons import functions
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
@ -12,7 +11,7 @@ logger = Logger(module="basemodels.ArcFace")
# --------------------------------
# dependency configuration
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model

View File

@ -1,13 +1,12 @@
import os
import gdown
import tensorflow as tf
from deepface.commons import functions
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
logger = Logger(module="basemodels.DeepID")
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model

View File

@ -1,6 +1,5 @@
import os
import gdown
import tensorflow as tf
from deepface.commons import functions
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
@ -10,7 +9,7 @@ logger = Logger(module="basemodels.Facenet")
# --------------------------------
# dependency configuration
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model

View File

@ -1,7 +1,6 @@
import os
import zipfile
import gdown
import tensorflow as tf
from deepface.commons import functions
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
@ -11,7 +10,7 @@ logger = Logger(module="basemodels.FbDeepFace")
# --------------------------------
# dependency configuration
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model, Sequential

View File

@ -7,7 +7,7 @@ from deepface.models.FacialRecognition import FacialRecognition
logger = Logger(module="basemodels.OpenFace")
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model
from keras.layers import Conv2D, ZeroPadding2D, Input, concatenate
@ -30,6 +30,7 @@ class OpenFace(FacialRecognition):
"""
OpenFace model class
"""
def __init__(self):
self.model = load_model()
self.model_name = "OpenFace"

View File

@ -1,6 +1,5 @@
import os
import gdown
import tensorflow as tf
from deepface.commons import functions
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
@ -9,8 +8,7 @@ logger = Logger(module="basemodels.VGGFace")
# ---------------------------------------
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model, Sequential
from keras.layers import (

View File

@ -21,9 +21,12 @@ logger = Logger(module="commons.functions")
# --------------------------------------------------
# configurations of dependencies
tf_version = tf.__version__
tf_major_version = int(tf_version.split(".", maxsplit=1)[0])
tf_minor_version = int(tf_version.split(".")[1])
def get_tf_major_version() -> int:
return int(tf.__version__.split(".", maxsplit=1)[0])
tf_major_version = get_tf_major_version()
if tf_major_version == 1:
from keras.preprocessing import image

View File

@ -1,7 +1,6 @@
import os
import gdown
import numpy as np
import tensorflow as tf
from deepface.basemodels import VGGFace
from deepface.commons import functions
from deepface.commons.logger import Logger
@ -12,7 +11,7 @@ logger = Logger(module="extendedmodels.Age")
# ----------------------------------------
# dependency configurations
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model, Sequential

View File

@ -1,6 +1,5 @@
import os
import gdown
import tensorflow as tf
import numpy as np
import cv2
from deepface.commons import functions
@ -13,7 +12,7 @@ logger = Logger(module="extendedmodels.Emotion")
# pylint: disable=line-too-long
# -------------------------------------------
# dependency configuration
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Sequential

View File

@ -1,6 +1,5 @@
import os
import gdown
import tensorflow as tf
import numpy as np
from deepface.basemodels import VGGFace
from deepface.commons import functions
@ -14,8 +13,7 @@ logger = Logger(module="extendedmodels.Gender")
# -------------------------------------
# dependency configurations
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model, Sequential
from keras.layers import Convolution2D, Flatten, Activation

View File

@ -1,6 +1,5 @@
import os
import gdown
import tensorflow as tf
import numpy as np
from deepface.basemodels import VGGFace
from deepface.commons import functions
@ -13,7 +12,7 @@ logger = Logger(module="extendedmodels.Race")
# pylint: disable=line-too-long
# --------------------------
# dependency configurations
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model, Sequential

View File

@ -1,10 +1,9 @@
from typing import Union
from abc import ABC, abstractmethod
import numpy as np
import tensorflow as tf
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
from deepface.commons import functions
tf_version = functions.get_tf_major_version()
if tf_version == 1:
from keras.models import Model
else:

View File

@ -1,9 +1,9 @@
from abc import ABC
from typing import Any, Union
import numpy as np
import tensorflow as tf
from deepface.commons import functions
tf_version = int(tf.__version__.split(".", maxsplit=1)[0])
tf_version = functions.get_tf_major_version()
if tf_version == 2:
from tensorflow.keras.models import Model
else: