Add V2 APIs for losses: MeanAbsoluteError, MeanAbsolutePercentageError, MeanSquaredLogarithmicError

PiperOrigin-RevId: 223422208
This commit is contained in:
Pavithra Vijay 2018-11-29 15:26:27 -08:00 committed by TensorFlower Gardener
parent ee5f4ebbf4
commit 3a9b2ae05d
11 changed files with 128 additions and 21 deletions

View File

@ -116,7 +116,7 @@ class Loss(object):
NotImplementedError('Must be implemented in subclasses.') NotImplementedError('Must be implemented in subclasses.')
@tf_export('losses.MeanSquaredError', 'keras.losses.MeanSquaredError') @tf_export('keras.losses.MeanSquaredError')
class MeanSquaredError(Loss): class MeanSquaredError(Loss):
"""Computes the mean of squares of errors between labels and predictions. """Computes the mean of squares of errors between labels and predictions.
@ -126,7 +126,7 @@ class MeanSquaredError(Loss):
Usage: Usage:
```python ```python
mse = tf.losses.MeanSquaredError() mse = tf.keras.losses.MeanSquaredError()
loss = mse([0., 0., 1., 1.], [1., 1., 1., 0.]) loss = mse([0., 0., 1., 1.], [1., 1., 1., 0.])
print('Loss: ', loss.numpy()) # Loss: 0.75 print('Loss: ', loss.numpy()) # Loss: 0.75
``` ```
@ -135,7 +135,7 @@ class MeanSquaredError(Loss):
```python ```python
model = keras.models.Model(inputs, outputs) model = keras.models.Model(inputs, outputs)
model.compile('sgd', loss=tf.losses.MeanSquaredError()) model.compile('sgd', loss=tf.keras.losses.MeanSquaredError())
``` ```
""" """
@ -154,6 +154,7 @@ class MeanSquaredError(Loss):
return mean_squared_error(y_true, y_pred) return mean_squared_error(y_true, y_pred)
@tf_export('keras.losses.MeanAbsoluteError')
class MeanAbsoluteError(Loss): class MeanAbsoluteError(Loss):
"""Computes the mean of absolute difference between labels and predictions. """Computes the mean of absolute difference between labels and predictions.
@ -163,7 +164,7 @@ class MeanAbsoluteError(Loss):
Usage: Usage:
```python ```python
mae = tf.losses.MeanAbsoluteError() mae = tf.keras.losses.MeanAbsoluteError()
loss = mae([0., 0., 1., 1.], [1., 1., 1., 0.]) loss = mae([0., 0., 1., 1.], [1., 1., 1., 0.])
print('Loss: ', loss.numpy()) # Loss: 0.75 print('Loss: ', loss.numpy()) # Loss: 0.75
``` ```
@ -172,7 +173,7 @@ class MeanAbsoluteError(Loss):
```python ```python
model = keras.models.Model(inputs, outputs) model = keras.models.Model(inputs, outputs)
model.compile('sgd', loss=tf.losses.MeanAbsoluteError()) model.compile('sgd', loss=tf.keras.losses.MeanAbsoluteError())
``` ```
""" """
@ -191,6 +192,7 @@ class MeanAbsoluteError(Loss):
return mean_absolute_error(y_true, y_pred) return mean_absolute_error(y_true, y_pred)
@tf_export('keras.losses.MeanAbsolutePercentageError')
class MeanAbsolutePercentageError(Loss): class MeanAbsolutePercentageError(Loss):
"""Computes the mean absolute percentage error between `y_true` and `y_pred`. """Computes the mean absolute percentage error between `y_true` and `y_pred`.
@ -200,7 +202,7 @@ class MeanAbsolutePercentageError(Loss):
Usage: Usage:
```python ```python
mape = tf.losses.MeanAbsolutePercentageError() mape = tf.keras.losses.MeanAbsolutePercentageError()
loss = mape([0., 0., 1., 1.], [1., 1., 1., 0.]) loss = mape([0., 0., 1., 1.], [1., 1., 1., 0.])
print('Loss: ', loss.numpy()) # Loss: 5e+08 print('Loss: ', loss.numpy()) # Loss: 5e+08
``` ```
@ -209,7 +211,7 @@ class MeanAbsolutePercentageError(Loss):
```python ```python
model = keras.models.Model(inputs, outputs) model = keras.models.Model(inputs, outputs)
model.compile('sgd', loss=tf.losses.MeanAbsolutePercentageError()) model.compile('sgd', loss=tf.keras.losses.MeanAbsolutePercentageError())
``` ```
""" """
@ -228,6 +230,7 @@ class MeanAbsolutePercentageError(Loss):
return mean_absolute_percentage_error(y_true, y_pred) return mean_absolute_percentage_error(y_true, y_pred)
@tf_export('keras.losses.MeanSquaredLogarithmicError')
class MeanSquaredLogarithmicError(Loss): class MeanSquaredLogarithmicError(Loss):
"""Computes the mean squared logarithmic error between `y_true` and `y_pred`. """Computes the mean squared logarithmic error between `y_true` and `y_pred`.
@ -237,7 +240,7 @@ class MeanSquaredLogarithmicError(Loss):
Usage: Usage:
```python ```python
msle = tf.losses.MeanSquaredLogarithmicError() msle = tf.keras.losses.MeanSquaredLogarithmicError()
loss = msle([0., 0., 1., 1.], [1., 1., 1., 0.]) loss = msle([0., 0., 1., 1.], [1., 1., 1., 0.])
print('Loss: ', loss.numpy()) # Loss: 0.36034 print('Loss: ', loss.numpy()) # Loss: 0.36034
``` ```
@ -246,7 +249,7 @@ class MeanSquaredLogarithmicError(Loss):
```python ```python
model = keras.models.Model(inputs, outputs) model = keras.models.Model(inputs, outputs)
model.compile('sgd', loss=tf.losses.MeanSquaredLogarithmicError()) model.compile('sgd', loss=tf.keras.losses.MeanSquaredLogarithmicError())
``` ```
""" """

View File

@ -0,0 +1,22 @@
path: "tensorflow.keras.losses.MeanAbsoluteError"
tf_class {
is_instance: "<class \'tensorflow.python.keras.losses.MeanAbsoluteError\'>"
is_instance: "<class \'tensorflow.python.keras.losses.Loss\'>"
is_instance: "<type \'object\'>"
member_method {
name: "__init__"
argspec: "args=[\'self\', \'reduction\', \'name\'], varargs=None, keywords=None, defaults=[\'sum_over_batch_size\', \'None\'], "
}
member_method {
name: "call"
argspec: "args=[\'self\', \'y_true\', \'y_pred\'], varargs=None, keywords=None, defaults=None"
}
member_method {
name: "from_config"
argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None"
}
member_method {
name: "get_config"
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
}
}

View File

@ -0,0 +1,22 @@
path: "tensorflow.keras.losses.MeanAbsolutePercentageError"
tf_class {
is_instance: "<class \'tensorflow.python.keras.losses.MeanAbsolutePercentageError\'>"
is_instance: "<class \'tensorflow.python.keras.losses.Loss\'>"
is_instance: "<type \'object\'>"
member_method {
name: "__init__"
argspec: "args=[\'self\', \'reduction\', \'name\'], varargs=None, keywords=None, defaults=[\'sum_over_batch_size\', \'None\'], "
}
member_method {
name: "call"
argspec: "args=[\'self\', \'y_true\', \'y_pred\'], varargs=None, keywords=None, defaults=None"
}
member_method {
name: "from_config"
argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None"
}
member_method {
name: "get_config"
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
}
}

View File

@ -1,6 +1,6 @@
path: "tensorflow.losses.MeanSquaredError" path: "tensorflow.keras.losses.MeanSquaredLogarithmicError"
tf_class { tf_class {
is_instance: "<class \'tensorflow.python.keras.losses.MeanSquaredError\'>" is_instance: "<class \'tensorflow.python.keras.losses.MeanSquaredLogarithmicError\'>"
is_instance: "<class \'tensorflow.python.keras.losses.Loss\'>" is_instance: "<class \'tensorflow.python.keras.losses.Loss\'>"
is_instance: "<type \'object\'>" is_instance: "<type \'object\'>"
member_method { member_method {

View File

@ -1,9 +1,21 @@
path: "tensorflow.keras.losses" path: "tensorflow.keras.losses"
tf_module { tf_module {
member {
name: "MeanAbsoluteError"
mtype: "<type \'type\'>"
}
member {
name: "MeanAbsolutePercentageError"
mtype: "<type \'type\'>"
}
member { member {
name: "MeanSquaredError" name: "MeanSquaredError"
mtype: "<type \'type\'>" mtype: "<type \'type\'>"
} }
member {
name: "MeanSquaredLogarithmicError"
mtype: "<type \'type\'>"
}
member_method { member_method {
name: "KLD" name: "KLD"
argspec: "args=[\'y_true\', \'y_pred\'], varargs=None, keywords=None, defaults=None" argspec: "args=[\'y_true\', \'y_pred\'], varargs=None, keywords=None, defaults=None"

View File

@ -1,9 +1,5 @@
path: "tensorflow.losses" path: "tensorflow.losses"
tf_module { tf_module {
member {
name: "MeanSquaredError"
mtype: "<type \'type\'>"
}
member { member {
name: "Reduction" name: "Reduction"
mtype: "<type \'type\'>" mtype: "<type \'type\'>"

View File

@ -0,0 +1,22 @@
path: "tensorflow.keras.losses.MeanAbsoluteError"
tf_class {
is_instance: "<class \'tensorflow.python.keras.losses.MeanAbsoluteError\'>"
is_instance: "<class \'tensorflow.python.keras.losses.Loss\'>"
is_instance: "<type \'object\'>"
member_method {
name: "__init__"
argspec: "args=[\'self\', \'reduction\', \'name\'], varargs=None, keywords=None, defaults=[\'sum_over_batch_size\', \'None\'], "
}
member_method {
name: "call"
argspec: "args=[\'self\', \'y_true\', \'y_pred\'], varargs=None, keywords=None, defaults=None"
}
member_method {
name: "from_config"
argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None"
}
member_method {
name: "get_config"
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
}
}

View File

@ -0,0 +1,22 @@
path: "tensorflow.keras.losses.MeanAbsolutePercentageError"
tf_class {
is_instance: "<class \'tensorflow.python.keras.losses.MeanAbsolutePercentageError\'>"
is_instance: "<class \'tensorflow.python.keras.losses.Loss\'>"
is_instance: "<type \'object\'>"
member_method {
name: "__init__"
argspec: "args=[\'self\', \'reduction\', \'name\'], varargs=None, keywords=None, defaults=[\'sum_over_batch_size\', \'None\'], "
}
member_method {
name: "call"
argspec: "args=[\'self\', \'y_true\', \'y_pred\'], varargs=None, keywords=None, defaults=None"
}
member_method {
name: "from_config"
argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None"
}
member_method {
name: "get_config"
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
}
}

View File

@ -1,6 +1,6 @@
path: "tensorflow.losses.MeanSquaredError" path: "tensorflow.keras.losses.MeanSquaredLogarithmicError"
tf_class { tf_class {
is_instance: "<class \'tensorflow.python.keras.losses.MeanSquaredError\'>" is_instance: "<class \'tensorflow.python.keras.losses.MeanSquaredLogarithmicError\'>"
is_instance: "<class \'tensorflow.python.keras.losses.Loss\'>" is_instance: "<class \'tensorflow.python.keras.losses.Loss\'>"
is_instance: "<type \'object\'>" is_instance: "<type \'object\'>"
member_method { member_method {

View File

@ -1,9 +1,21 @@
path: "tensorflow.keras.losses" path: "tensorflow.keras.losses"
tf_module { tf_module {
member {
name: "MeanAbsoluteError"
mtype: "<type \'type\'>"
}
member {
name: "MeanAbsolutePercentageError"
mtype: "<type \'type\'>"
}
member { member {
name: "MeanSquaredError" name: "MeanSquaredError"
mtype: "<type \'type\'>" mtype: "<type \'type\'>"
} }
member {
name: "MeanSquaredLogarithmicError"
mtype: "<type \'type\'>"
}
member { member {
name: "Reduction" name: "Reduction"
mtype: "<type \'type\'>" mtype: "<type \'type\'>"

View File

@ -1,9 +1,5 @@
path: "tensorflow.losses" path: "tensorflow.losses"
tf_module { tf_module {
member {
name: "MeanSquaredError"
mtype: "<type \'type\'>"
}
member { member {
name: "Reduction" name: "Reduction"
mtype: "<type \'type\'>" mtype: "<type \'type\'>"