mirror of
https://github.com/serengil/deepface.git
synced 2025-06-13 06:47:11 +00:00
66 lines
1.6 KiB
Python
66 lines
1.6 KiB
Python
# built-in dependencies
|
|
import hashlib
|
|
|
|
# 3rd party dependencies
|
|
import tensorflow as tf
|
|
|
|
# package dependencies
|
|
from deepface.commons.logger import Logger
|
|
|
|
logger = Logger()
|
|
|
|
|
|
def get_tf_major_version() -> int:
|
|
"""
|
|
Find tensorflow's major version
|
|
Returns
|
|
major_version (int)
|
|
"""
|
|
return int(tf.__version__.split(".", maxsplit=1)[0])
|
|
|
|
|
|
def get_tf_minor_version() -> int:
|
|
"""
|
|
Find tensorflow's minor version
|
|
Returns
|
|
minor_version (int)
|
|
"""
|
|
return int(tf.__version__.split(".", maxsplit=-1)[1])
|
|
|
|
|
|
def validate_for_keras3():
|
|
tf_major = get_tf_major_version()
|
|
tf_minor = get_tf_minor_version()
|
|
|
|
# tf_keras is a must dependency after tf 2.16
|
|
if tf_major == 1 or (tf_major == 2 and tf_minor < 16):
|
|
return
|
|
|
|
try:
|
|
import tf_keras
|
|
|
|
logger.debug(f"tf_keras is already available - {tf_keras.__version__}")
|
|
except ImportError as err:
|
|
# you may consider to install that package here
|
|
raise ValueError(
|
|
f"You have tensorflow {tf.__version__} and this requires "
|
|
"tf-keras package. Please run `pip install tf-keras` "
|
|
"or downgrade your tensorflow."
|
|
) from err
|
|
|
|
|
|
def find_file_hash(file_path: str, hash_algorithm: str = "sha256") -> str:
|
|
"""
|
|
Find the hash of a given file with its content
|
|
Args:
|
|
file_path (str): exact path of a given file
|
|
hash_algorithm (str): hash algorithm
|
|
Returns:
|
|
hash (str)
|
|
"""
|
|
hash_func = hashlib.new(hash_algorithm)
|
|
with open(file_path, "rb") as f:
|
|
while chunk := f.read(8192):
|
|
hash_func.update(chunk)
|
|
return hash_func.hexdigest()
|