update all to K2

This commit is contained in:
farizrahman4u
2017-03-19 08:01:52 +05:30
parent 9cdf52e71f
commit 70b8225abc
12 changed files with 10 additions and 106 deletions
-2
View File
@@ -1,7 +1,5 @@
from __future__ import absolute_import
from . import backend as K
from keras.utils.generic_utils import get_from_module
from keras.constraints import *
+1 -1
View File
@@ -1,4 +1,4 @@
from .. import initializations
from .. import initializers
from keras.engine import Layer
from keras.utils.generic_utils import get_custom_objects
from .. import backend as K
+1 -3
View File
@@ -12,15 +12,13 @@ import warnings
from .. import backend as K
from .. import activations
from .. import initializations
from .. import initializers
from .. import regularizers
from .. import constraints
from keras.engine import InputSpec
from keras.engine import Layer
from keras.engine import Merge
from keras.utils.generic_utils import func_dump
from keras.utils.generic_utils import func_load
from keras.utils.generic_utils import get_from_module
from keras.utils.generic_utils import get_custom_objects
+1 -1
View File
@@ -1,7 +1,7 @@
from __future__ import absolute_import
from .. import backend as K
from .. import initializations
from .. import initializers
from .. import regularizers
from .. import constraints
from keras.engine import Layer
+2 -2
View File
@@ -3,9 +3,9 @@ from __future__ import absolute_import
from .. import backend as K
from .. import activations
from .. import initializations
from .. import initializers
from .. import regularizers
from .. import constraints
from keras.engine import Layer
from keras.engine import InputSpec
from keras.utils.np_utils import conv_output_length
from keras.utils.conv_utils import conv_output_length
+1 -1
View File
@@ -1,5 +1,5 @@
from keras.engine import Layer, InputSpec
from .. import initializations, regularizers
from .. import initializers, regularizers
from .. import backend as K
import numpy as np
+1 -1
View File
@@ -4,4 +4,4 @@ from __future__ import absolute_import
from .. import backend as K
from keras.engine import Layer
from keras.engine import InputSpec
from keras.utils.np_utils import conv_output_length
from keras.utils.conv_utils import conv_output_length
+2 -2
View File
@@ -4,9 +4,9 @@ import numpy as np
from .. import backend as K
from .. import activations
from .. import initializations
from .. import initializers
from .. import regularizers
from keras.engine import Layer
from keras.engine import InputSpec
from keras.layers.recurrent import time_distributed_dense
from keras.layers.recurrent import _time_distributed_dense
-6
View File
@@ -1,8 +1,2 @@
from . import backend as K
from keras.utils.generic_utils import get_from_module
from keras.metrics import *
def get(identifier):
return get_from_module(identifier, globals(), 'metric')
-63
View File
@@ -1,63 +0,0 @@
from __future__ import absolute_import
from keras.objectives import *
import keras_contrib.backend as KC
def get(identifier):
return get_from_module(identifier, globals(), 'objective')
class DSSIMObjective():
def __init__(self, k1=0.01, k2=0.03, kernel_size=3, max_value=1.0):
"""
Difference of Structural Similarity (DSSIM loss function). Clipped between 0 and 0.5
Note : You should add a regularization term like a l2 loss in addition to this one.
:param k1: Parameter of the SSIM (default 0.01)
:param k2: Parameter of the SSIM (default 0.03)
:param kernel_size: Size of the sliding window (default 3)
:param max_value: Max value of the output (default 1.0)
"""
self.__name__ = "DSSIMObjective"
self.kernel_size = kernel_size
self.k1 = k1
self.k2 = k2
self.max_value = max_value
self.c1 = (self.k1 * self.max_value) ** 2
self.c2 = (self.k2 * self.max_value) ** 2
self.dim_ordering = K.image_dim_ordering()
self.backend = KC.backend()
def __int_shape(self, x):
return KC.int_shape(x) if self.backend == "tensorflow" else KC.shape(x)
def __call__(self, y_true, y_pred):
# There are additional parameters for this function
# Note: some of the 'modes' for edge behavior do not yet have a gradient definition in the Theano tree
# and cannot be used for learning
kernel = [self.kernel_size, self.kernel_size]
y_true = KC.reshape(y_true, [-1] + list(self.__int_shape(y_pred)[1:]))
y_pred = KC.reshape(y_pred, [-1] + list(self.__int_shape(y_pred)[1:]))
patches_pred = KC.extract_image_patches(y_pred, kernel, kernel, "valid", self.dim_ordering)
patches_true = KC.extract_image_patches(y_true, kernel, kernel, "valid", self.dim_ordering)
# Reshape to get the var in the cells
bs, w, h, c1, c2, c3 = self.__int_shape(patches_pred)
patches_pred = KC.reshape(patches_pred, [-1, w, h, c1 * c2 * c3])
patches_true = KC.reshape(patches_true, [-1, w, h, c1 * c2 * c3])
# Get mean
u_true = KC.mean(patches_true, axis=-1)
u_pred = KC.mean(patches_pred, axis=-1)
# Get variance
var_true = K.var(patches_true, axis=-1)
var_pred = K.var(patches_pred, axis=-1)
# Get std dev
std_true = K.sqrt(var_true + KC.epsilon())
std_pred = K.sqrt(var_pred + KC.epsilon())
ssim = (2 * u_true * u_pred + self.c1) * (2 * std_pred * std_true + self.c2)
denom = (K.square(u_true) + K.square(u_pred) + self.c1) * (var_pred + var_true + self.c2)
ssim /= denom # no need for clipping, c1 and c2 make the denom non-zero
return K.mean((1.0 - ssim) / 2.0)
+1 -17
View File
@@ -1,19 +1,3 @@
from __future__ import absolute_import
from six.moves import zip
from . import backend as K
from keras.utils.generic_utils import get_from_module, get_custom_objects
if K.backend() == 'tensorflow':
import tensorflow as tf
def get(identifier, kwargs=None):
if K.backend() == 'tensorflow':
# Wrap TF optimizer instances
if isinstance(identifier, tf.train.Optimizer):
return TFOptimizer(identifier)
# Instantiate a Keras optimizer
return get_from_module(identifier, globals(), 'optimizer',
instantiate=True, kwargs=kwargs)
from keras.optimizers import *
-7
View File
@@ -1,10 +1,3 @@
from __future__ import absolute_import
from . import backend as K
from keras.utils.generic_utils import get_from_module
from keras.regularizers import *
def get(identifier, kwargs=None):
return get_from_module(identifier, globals(), 'regularizer',
instantiate=True, kwargs=kwargs)