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") warnings.filterwarnings("ignore")
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3" 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: if tf_version == 2:
tf.get_logger().setLevel(logging.ERROR) tf.get_logger().setLevel(logging.ERROR)
from tensorflow.keras.models import Model
else:
from keras.models import Model
# ----------------------------------- # -----------------------------------
functions.initialize_folder() 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 This function builds a deepface model
Parameters: Args:
model_name (string): face recognition or facial attribute model model_name (string): face recognition or facial attribute model
VGG-Face, Facenet, OpenFace, DeepFace, DeepID for face recognition VGG-Face, Facenet, OpenFace, DeepFace, DeepID for face recognition
Age, Gender, Emotion, Race for facial attributes Age, Gender, Emotion, Race for facial attributes
Returns: Returns:
built deepface model ( (tf.)keras.models.Model ) built model with corresponding class
""" """
return modeling.build_model(model_name=model_name) return modeling.build_model(model_name=model_name)

View File

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

View File

@ -1,13 +1,12 @@
import os import os
import gdown import gdown
import tensorflow as tf
from deepface.commons import functions from deepface.commons import functions
from deepface.commons.logger import Logger from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition from deepface.models.FacialRecognition import FacialRecognition
logger = Logger(module="basemodels.DeepID") 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: if tf_version == 1:
from keras.models import Model from keras.models import Model

View File

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

View File

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

View File

@ -7,7 +7,7 @@ from deepface.models.FacialRecognition import FacialRecognition
logger = Logger(module="basemodels.OpenFace") 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: if tf_version == 1:
from keras.models import Model from keras.models import Model
from keras.layers import Conv2D, ZeroPadding2D, Input, concatenate from keras.layers import Conv2D, ZeroPadding2D, Input, concatenate
@ -30,6 +30,7 @@ class OpenFace(FacialRecognition):
""" """
OpenFace model class OpenFace model class
""" """
def __init__(self): def __init__(self):
self.model = load_model() self.model = load_model()
self.model_name = "OpenFace" self.model_name = "OpenFace"

View File

@ -1,6 +1,5 @@
import os import os
import gdown import gdown
import tensorflow as tf
from deepface.commons import functions from deepface.commons import functions
from deepface.commons.logger import Logger from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition 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: if tf_version == 1:
from keras.models import Model, Sequential from keras.models import Model, Sequential
from keras.layers import ( from keras.layers import (

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,10 +1,9 @@
from typing import Union from typing import Union
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
import numpy as np 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 == 1: if tf_version == 1:
from keras.models import Model from keras.models import Model
else: else:

View File

@ -1,9 +1,9 @@
from abc import ABC from abc import ABC
from typing import Any, Union from typing import Any, Union
import numpy as np 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: if tf_version == 2:
from tensorflow.keras.models import Model from tensorflow.keras.models import Model
else: else: