mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-08-21 22:13:20 -07:00
tf2
This commit is contained in:
parent
39601603ef
commit
6a68dd5e59
2 changed files with 14 additions and 18 deletions
|
@ -1,5 +1,6 @@
|
||||||
from core.leras import nn
|
from core.leras import nn
|
||||||
tf = nn.tf
|
tf = nn.tf
|
||||||
|
tf2 = nn.tf2
|
||||||
|
|
||||||
class MsSsim(nn.LayerBase):
|
class MsSsim(nn.LayerBase):
|
||||||
default_power_factors = (0.0448, 0.2856, 0.3001, 0.2363, 0.1333)
|
default_power_factors = (0.0448, 0.2856, 0.3001, 0.2363, 0.1333)
|
||||||
|
@ -20,15 +21,7 @@ class MsSsim(nn.LayerBase):
|
||||||
y_true_t = tf.transpose(tf.cast(y_true, tf.float32), [0, 2, 3, 1])
|
y_true_t = tf.transpose(tf.cast(y_true, tf.float32), [0, 2, 3, 1])
|
||||||
y_pred_t = tf.transpose(tf.cast(y_pred, tf.float32), [0, 2, 3, 1])
|
y_pred_t = tf.transpose(tf.cast(y_pred, tf.float32), [0, 2, 3, 1])
|
||||||
|
|
||||||
|
loss = tf2.image.ssim_multiscale(y_true_t, y_pred_t, max_val, power_factors=self.power_factors)
|
||||||
def assign_device(op):
|
return (1.0 - loss) / 2.0
|
||||||
if op.type != 'Assert' or op.type != 'ListDiff':
|
|
||||||
return '/gpu:0'
|
|
||||||
else:
|
|
||||||
return '/cpu:0'
|
|
||||||
|
|
||||||
with tf.device(assign_device):
|
|
||||||
loss = tf.image.ssim_multiscale(y_true_t, y_pred_t, max_val, power_factors=self.power_factors)
|
|
||||||
return (1.0 - loss) / 2.0
|
|
||||||
|
|
||||||
nn.MsSsim = MsSsim
|
nn.MsSsim = MsSsim
|
||||||
|
|
|
@ -31,6 +31,7 @@ class nn():
|
||||||
current_DeviceConfig = None
|
current_DeviceConfig = None
|
||||||
|
|
||||||
tf = None
|
tf = None
|
||||||
|
tf2 = None
|
||||||
tf_sess = None
|
tf_sess = None
|
||||||
tf_sess_config = None
|
tf_sess_config = None
|
||||||
tf_default_device = None
|
tf_default_device = None
|
||||||
|
@ -40,7 +41,7 @@ class nn():
|
||||||
conv2d_spatial_axes = None
|
conv2d_spatial_axes = None
|
||||||
|
|
||||||
floatx = None
|
floatx = None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def initialize(device_config=None, floatx="float32", data_format="NHWC"):
|
def initialize(device_config=None, floatx="float32", data_format="NHWC"):
|
||||||
|
|
||||||
|
@ -50,7 +51,7 @@ class nn():
|
||||||
nn.setCurrentDeviceConfig(device_config)
|
nn.setCurrentDeviceConfig(device_config)
|
||||||
|
|
||||||
# Manipulate environment variables before import tensorflow
|
# Manipulate environment variables before import tensorflow
|
||||||
|
|
||||||
if 'CUDA_VISIBLE_DEVICES' in os.environ.keys():
|
if 'CUDA_VISIBLE_DEVICES' in os.environ.keys():
|
||||||
os.environ.pop('CUDA_VISIBLE_DEVICES')
|
os.environ.pop('CUDA_VISIBLE_DEVICES')
|
||||||
|
|
||||||
|
@ -77,15 +78,17 @@ class nn():
|
||||||
io.log_info("Caching GPU kernels...")
|
io.log_info("Caching GPU kernels...")
|
||||||
|
|
||||||
import tensorflow
|
import tensorflow
|
||||||
|
|
||||||
tf_version = getattr(tensorflow,'VERSION', None)
|
tf_version = getattr(tensorflow,'VERSION', None)
|
||||||
if tf_version is None:
|
if tf_version is None:
|
||||||
tf_version = tensorflow.version.GIT_VERSION
|
tf_version = tensorflow.version.GIT_VERSION
|
||||||
if tf_version[0] == 'v':
|
if tf_version[0] == 'v':
|
||||||
tf_version = tf_version[1:]
|
tf_version = tf_version[1:]
|
||||||
|
|
||||||
if tf_version[0] == '2':
|
if tf_version[0] == '2':
|
||||||
tf = tensorflow.compat.v1
|
tf = tensorflow.compat.v1
|
||||||
|
tf2 = tensorflow
|
||||||
|
nn.tf2 = tf2
|
||||||
else:
|
else:
|
||||||
tf = tensorflow
|
tf = tensorflow
|
||||||
|
|
||||||
|
@ -93,7 +96,7 @@ class nn():
|
||||||
# Disable tensorflow warnings
|
# Disable tensorflow warnings
|
||||||
tf_logger = logging.getLogger('tensorflow')
|
tf_logger = logging.getLogger('tensorflow')
|
||||||
tf_logger.setLevel(logging.ERROR)
|
tf_logger.setLevel(logging.ERROR)
|
||||||
|
|
||||||
if tf_version[0] == '2':
|
if tf_version[0] == '2':
|
||||||
tf.disable_v2_behavior()
|
tf.disable_v2_behavior()
|
||||||
nn.tf = tf
|
nn.tf = tf
|
||||||
|
@ -105,7 +108,7 @@ class nn():
|
||||||
import core.leras.optimizers
|
import core.leras.optimizers
|
||||||
import core.leras.models
|
import core.leras.models
|
||||||
import core.leras.archis
|
import core.leras.archis
|
||||||
|
|
||||||
# Configure tensorflow session-config
|
# Configure tensorflow session-config
|
||||||
if len(device_config.devices) == 0:
|
if len(device_config.devices) == 0:
|
||||||
nn.tf_default_device = "/CPU:0"
|
nn.tf_default_device = "/CPU:0"
|
||||||
|
@ -118,7 +121,7 @@ class nn():
|
||||||
config.gpu_options.force_gpu_compatible = True
|
config.gpu_options.force_gpu_compatible = True
|
||||||
config.gpu_options.allow_growth = True
|
config.gpu_options.allow_growth = True
|
||||||
nn.tf_sess_config = config
|
nn.tf_sess_config = config
|
||||||
|
|
||||||
if nn.tf_sess is None:
|
if nn.tf_sess is None:
|
||||||
nn.tf_sess = tf.Session(config=nn.tf_sess_config)
|
nn.tf_sess = tf.Session(config=nn.tf_sess_config)
|
||||||
|
|
||||||
|
@ -273,7 +276,7 @@ class nn():
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def ask_choose_device(*args, **kwargs):
|
def ask_choose_device(*args, **kwargs):
|
||||||
return nn.DeviceConfig.GPUIndexes( nn.ask_choose_device_idxs(*args,**kwargs) )
|
return nn.DeviceConfig.GPUIndexes( nn.ask_choose_device_idxs(*args,**kwargs) )
|
||||||
|
|
||||||
def __init__ (self, devices=None):
|
def __init__ (self, devices=None):
|
||||||
devices = devices or []
|
devices = devices or []
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue