Skip to content

Commit

Permalink
Merge branch 'staging'
Browse files Browse the repository at this point in the history
  • Loading branch information
torzdf committed Dec 19, 2022
2 parents dd64ed5 + 84ae600 commit d1e09f7
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 26 deletions.
6 changes: 3 additions & 3 deletions lib/cli/launcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ def _test_for_tf_version(self) -> None:
FaceswapError
If Tensorflow is not found, or is not between versions 2.4 and 2.9
"""
amd_ver = 2.2
min_ver = 2.7
max_ver = 2.9
amd_ver = (2, 2)
min_ver = (2, 7)
max_ver = (2, 9)
try:
import tensorflow as tf # noqa pylint:disable=import-outside-toplevel,unused-import
except ImportError as err:
Expand Down
9 changes: 5 additions & 4 deletions lib/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from socket import timeout as socket_timeout, error as socket_error
from threading import get_ident
from time import time
from typing import cast, Dict, List, Optional, Union, TYPE_CHECKING
from typing import cast, Dict, List, Optional, Union, Tuple, TYPE_CHECKING

import numpy as np
from tqdm import tqdm
Expand All @@ -34,7 +34,7 @@
_video_extensions = [ # pylint:disable=invalid-name
".avi", ".flv", ".mkv", ".mov", ".mp4", ".mpeg", ".mpg", ".webm", ".wmv",
".ts", ".vob"]
_TF_VERS: Optional[float] = None
_TF_VERS: Optional[Tuple[int, int]] = None
ValidBackends = Literal["amd", "nvidia", "cpu", "apple_silicon"]


Expand Down Expand Up @@ -149,7 +149,7 @@ def set_backend(backend: str) -> None:
_FS_BACKEND = backend


def get_tf_version() -> float:
def get_tf_version() -> Tuple[int, int]:
""" Obtain the major.minor version of currently installed Tensorflow.
Returns
Expand All @@ -160,7 +160,8 @@ def get_tf_version() -> float:
global _TF_VERS # pylint:disable=global-statement
if _TF_VERS is None:
import tensorflow as tf # pylint:disable=import-outside-toplevel
_TF_VERS = float(".".join(tf.__version__.split(".")[:2])) # pylint:disable=no-member
split = tf.__version__.split(".")[:2]
_TF_VERS = (int(split[0]), int(split[1]))
return _TF_VERS


Expand Down
53 changes: 35 additions & 18 deletions plugins/train/model/phaze_a.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ class _EncoderInfo:
keras_name: str
default_size: int
no_amd: bool = False
tf_min: float = 2.0
tf_min: Tuple[int, int] = (2, 0)
scaling: Tuple[int, int] = (0, 1)
min_size: int = 32
enforce_for_weights: bool = False
Expand All @@ -95,35 +95,50 @@ class _EncoderInfo:
densenet201=_EncoderInfo(
keras_name="DenseNet201", default_size=224),
efficientnet_b0=_EncoderInfo(
keras_name="EfficientNetB0", no_amd=True, tf_min=2.3, scaling=(0, 255), default_size=224),
keras_name="EfficientNetB0",
no_amd=True, tf_min=(2, 3), scaling=(0, 255), default_size=224),
efficientnet_b1=_EncoderInfo(
keras_name="EfficientNetB1", no_amd=True, tf_min=2.3, scaling=(0, 255), default_size=240),
keras_name="EfficientNetB1",
no_amd=True, tf_min=(2, 3), scaling=(0, 255), default_size=240),
efficientnet_b2=_EncoderInfo(
keras_name="EfficientNetB2", no_amd=True, tf_min=2.3, scaling=(0, 255), default_size=260),
keras_name="EfficientNetB2",
no_amd=True, tf_min=(2, 3), scaling=(0, 255), default_size=260),
efficientnet_b3=_EncoderInfo(
keras_name="EfficientNetB3", no_amd=True, tf_min=2.3, scaling=(0, 255), default_size=300),
keras_name="EfficientNetB3",
no_amd=True, tf_min=(2, 3), scaling=(0, 255), default_size=300),
efficientnet_b4=_EncoderInfo(
keras_name="EfficientNetB4", no_amd=True, tf_min=2.3, scaling=(0, 255), default_size=380),
keras_name="EfficientNetB4",
no_amd=True, tf_min=(2, 3), scaling=(0, 255), default_size=380),
efficientnet_b5=_EncoderInfo(
keras_name="EfficientNetB5", no_amd=True, tf_min=2.3, scaling=(0, 255), default_size=456),
keras_name="EfficientNetB5",
no_amd=True, tf_min=(2, 3), scaling=(0, 255), default_size=456),
efficientnet_b6=_EncoderInfo(
keras_name="EfficientNetB6", no_amd=True, tf_min=2.3, scaling=(0, 255), default_size=528),
keras_name="EfficientNetB6",
no_amd=True, tf_min=(2, 3), scaling=(0, 255), default_size=528),
efficientnet_b7=_EncoderInfo(
keras_name="EfficientNetB7", no_amd=True, tf_min=2.3, scaling=(0, 255), default_size=600),
keras_name="EfficientNetB7",
no_amd=True, tf_min=(2, 3), scaling=(0, 255), default_size=600),
efficientnet_v2_b0=_EncoderInfo(
keras_name="EfficientNetV2B0", no_amd=True, tf_min=2.8, scaling=(-1, 1), default_size=224),
keras_name="EfficientNetV2B0",
no_amd=True, tf_min=(2, 8), scaling=(-1, 1), default_size=224),
efficientnet_v2_b1=_EncoderInfo(
keras_name="EfficientNetV2B1", no_amd=True, tf_min=2.8, scaling=(-1, 1), default_size=240),
keras_name="EfficientNetV2B1",
no_amd=True, tf_min=(2, 8), scaling=(-1, 1), default_size=240),
efficientnet_v2_b2=_EncoderInfo(
keras_name="EfficientNetV2B2", no_amd=True, tf_min=2.8, scaling=(-1, 1), default_size=260),
keras_name="EfficientNetV2B2",
no_amd=True, tf_min=(2, 8), scaling=(-1, 1), default_size=260),
efficientnet_v2_b3=_EncoderInfo(
keras_name="EfficientNetV2B3", no_amd=True, tf_min=2.8, scaling=(-1, 1), default_size=300),
keras_name="EfficientNetV2B3",
no_amd=True, tf_min=(2, 8), scaling=(-1, 1), default_size=300),
efficientnet_v2_s=_EncoderInfo(
keras_name="EfficientNetV2S", no_amd=True, tf_min=2.8, scaling=(-1, 1), default_size=384),
keras_name="EfficientNetV2S",
no_amd=True, tf_min=(2, 8), scaling=(-1, 1), default_size=384),
efficientnet_v2_m=_EncoderInfo(
keras_name="EfficientNetV2M", no_amd=True, tf_min=2.8, scaling=(-1, 1), default_size=480),
keras_name="EfficientNetV2M",
no_amd=True, tf_min=(2, 8), scaling=(-1, 1), default_size=480),
efficientnet_v2_l=_EncoderInfo(
keras_name="EfficientNetV2L", no_amd=True, tf_min=2.8, scaling=(-1, 1), default_size=480),
keras_name="EfficientNetV2L",
no_amd=True, tf_min=(2, 8), scaling=(-1, 1), default_size=480),
inception_resnet_v2=_EncoderInfo(
keras_name="InceptionResNetV2", scaling=(-1, 1), min_size=75, default_size=299),
inception_v3=_EncoderInfo(
Expand All @@ -133,9 +148,11 @@ class _EncoderInfo:
mobilenet_v2=_EncoderInfo(
keras_name="MobileNetV2", scaling=(-1, 1), default_size=224),
mobilenet_v3_large=_EncoderInfo(
keras_name="MobileNetV3Large", no_amd=True, tf_min=2.4, scaling=(-1, 1), default_size=224),
keras_name="MobileNetV3Large",
no_amd=True, tf_min=(2, 4), scaling=(-1, 1), default_size=224),
mobilenet_v3_small=_EncoderInfo(
keras_name="MobileNetV3Small", no_amd=True, tf_min=2.4, scaling=(-1, 1), default_size=224),
keras_name="MobileNetV3Small",
no_amd=True, tf_min=(2, 4), scaling=(-1, 1), default_size=224),
nasnet_large=_EncoderInfo(
keras_name="NASNetLarge", scaling=(-1, 1), default_size=331, enforce_for_weights=True),
nasnet_mobile=_EncoderInfo(
Expand Down
2 changes: 1 addition & 1 deletion plugins/train/trainer/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ def _log_tensorboard(self, loss: List[float]) -> None:
logs = {log[0]: log[1]
for log in zip(self._model.state.loss_names, loss)}

if get_tf_version() > 2.7:
if get_tf_version() > (2, 7):
# Bug in TF 2.8/2.9 where batch recording got deleted.
# ref: https://github.com/keras-team/keras/issues/16173
with tf.summary.record_if(True), self._tensorboard._train_writer.as_default(): # noqa pylint:disable=protected-access,not-context-manager
Expand Down

0 comments on commit d1e09f7

Please sign in to comment.