Copy tf.distributions to tfp.distributions, and deprecate the tf.distributions API.

PiperOrigin-RevId: 215441733
This commit is contained in:
A. Unique TensorFlower 2018-10-02 12:47:05 -07:00 committed by TensorFlower Gardener
parent 508dd179b6
commit 0a201955b4
18 changed files with 205 additions and 1 deletions

View File

@ -115,7 +115,7 @@ OUTPUT=$(${OFFLINE_ANALYZER_BIN} 2>&1)
set -e set -e
EXPECTED_OUTPUT="ERROR: dump_dir flag is empty." EXPECTED_OUTPUT="ERROR: dump_dir flag is empty."
if [[ "${OUTPUT}" != "${EXPECTED_OUTPUT}" ]]; then if ! echo "${OUTPUT}" | grep -q "${EXPECTED_OUTPUT}"; then
echo "ERROR: offline_analyzer output didn't match expectation: ${OUTPUT}" 1>&2 echo "ERROR: offline_analyzer output didn't match expectation: ${OUTPUT}" 1>&2
echo "Expected output: ${EXPECTED_OUTPUT}" echo "Expected output: ${EXPECTED_OUTPUT}"
exit 1 exit 1

View File

@ -12,6 +12,13 @@ py_library(
["*.py"], ["*.py"],
exclude = ["util.py"], exclude = ["util.py"],
), ),
deprecation = ("TensorFlow Distributions has migrated to " +
"TensorFlow Probability " +
"(https://github.com/tensorflow/probability). " +
"Deprecated copies remaining in tf.distributions " +
"will not receive new features, and will be removed by " +
"early 2019. You should update all usage of " +
"`tf.distributions` to `tfp.distributions`."),
srcs_version = "PY2AND3", srcs_version = "PY2AND3",
deps = [ deps = [
":util", ":util",

View File

@ -28,6 +28,7 @@ from tensorflow.python.ops import random_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import kullback_leibler from tensorflow.python.ops.distributions import kullback_leibler
from tensorflow.python.ops.distributions import util as distribution_util from tensorflow.python.ops.distributions import util as distribution_util
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -39,6 +40,14 @@ class Bernoulli(distribution.Distribution):
`1` outcome (vs a `0` outcome). `1` outcome (vs a `0` outcome).
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
logits=None, logits=None,
probs=None, probs=None,

View File

@ -33,6 +33,7 @@ from tensorflow.python.ops import random_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import kullback_leibler from tensorflow.python.ops.distributions import kullback_leibler
from tensorflow.python.ops.distributions import util as distribution_util from tensorflow.python.ops.distributions import util as distribution_util
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -150,6 +151,14 @@ class Beta(distribution.Distribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
concentration1=None, concentration1=None,
concentration0=None, concentration0=None,
@ -341,6 +350,11 @@ class Beta(distribution.Distribution):
class BetaWithSoftplusConcentration(Beta): class BetaWithSoftplusConcentration(Beta):
"""Beta with softplus transform of `concentration1` and `concentration0`.""" """Beta with softplus transform of `concentration1` and `concentration0`."""
@deprecation.deprecated(
"2019-01-01",
"Use `tfd.Beta(tf.nn.softplus(concentration1), "
"tf.nn.softplus(concentration2))` instead.",
warn_once=True)
def __init__(self, def __init__(self,
concentration1, concentration1,
concentration0, concentration0,

View File

@ -29,6 +29,7 @@ from tensorflow.python.ops import random_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import kullback_leibler from tensorflow.python.ops.distributions import kullback_leibler
from tensorflow.python.ops.distributions import util as distribution_util from tensorflow.python.ops.distributions import util as distribution_util
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -149,6 +150,14 @@ class Categorical(distribution.Distribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__( def __init__(
self, self,
logits=None, logits=None,

View File

@ -30,6 +30,7 @@ from tensorflow.python.ops import special_math_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import kullback_leibler from tensorflow.python.ops.distributions import kullback_leibler
from tensorflow.python.ops.distributions import util as distribution_util from tensorflow.python.ops.distributions import util as distribution_util
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -156,6 +157,14 @@ class Dirichlet(distribution.Distribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
concentration, concentration,
validate_args=False, validate_args=False,

View File

@ -28,6 +28,7 @@ from tensorflow.python.ops import random_ops
from tensorflow.python.ops import special_math_ops from tensorflow.python.ops import special_math_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import util as distribution_util from tensorflow.python.ops.distributions import util as distribution_util
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -163,6 +164,14 @@ class DirichletMultinomial(distribution.Distribution):
# TODO(b/27419586) Change docstring for dtype of concentration once int # TODO(b/27419586) Change docstring for dtype of concentration once int
# allowed. # allowed.
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
total_count, total_count,
concentration, concentration,

View File

@ -34,6 +34,7 @@ from tensorflow.python.ops import array_ops
from tensorflow.python.ops import math_ops from tensorflow.python.ops import math_ops
from tensorflow.python.ops.distributions import kullback_leibler from tensorflow.python.ops.distributions import kullback_leibler
from tensorflow.python.ops.distributions import util from tensorflow.python.ops.distributions import util
from tensorflow.python.util import deprecation
from tensorflow.python.util import tf_inspect from tensorflow.python.util import tf_inspect
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -229,6 +230,14 @@ class ReparameterizationType(object):
gradients / surrogate loss instead. gradients / surrogate loss instead.
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, rep_type): def __init__(self, rep_type):
self._rep_type = rep_type self._rep_type = rep_type
@ -405,6 +414,14 @@ class Distribution(_BaseDistribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
dtype, dtype,
reparameterization_type, reparameterization_type,

View File

@ -27,6 +27,7 @@ from tensorflow.python.ops import math_ops
from tensorflow.python.ops import nn from tensorflow.python.ops import nn
from tensorflow.python.ops import random_ops from tensorflow.python.ops import random_ops
from tensorflow.python.ops.distributions import gamma from tensorflow.python.ops.distributions import gamma
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -70,6 +71,14 @@ class Exponential(gamma.Gamma):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
rate, rate,
validate_args=False, validate_args=False,
@ -138,6 +147,10 @@ class Exponential(gamma.Gamma):
class ExponentialWithSoftplusRate(Exponential): class ExponentialWithSoftplusRate(Exponential):
"""Exponential with softplus transform on `rate`.""" """Exponential with softplus transform on `rate`."""
@deprecation.deprecated(
"2019-01-01",
"Use `tfd.Exponential(tf.nn.softplus(rate)).",
warn_once=True)
def __init__(self, def __init__(self,
rate, rate,
validate_args=False, validate_args=False,

View File

@ -33,6 +33,7 @@ from tensorflow.python.ops import random_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import kullback_leibler from tensorflow.python.ops.distributions import kullback_leibler
from tensorflow.python.ops.distributions import util as distribution_util from tensorflow.python.ops.distributions import util as distribution_util
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -121,6 +122,14 @@ class Gamma(distribution.Distribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
concentration, concentration,
rate, rate,
@ -279,6 +288,11 @@ class Gamma(distribution.Distribution):
class GammaWithSoftplusConcentrationRate(Gamma): class GammaWithSoftplusConcentrationRate(Gamma):
"""`Gamma` with softplus of `concentration` and `rate`.""" """`Gamma` with softplus of `concentration` and `rate`."""
@deprecation.deprecated(
"2019-01-01",
"Use `tfd.Gamma(tf.nn.softplus(concentration), "
"tf.nn.softplus(rate))` instead.",
warn_once=True)
def __init__(self, def __init__(self,
concentration, concentration,
rate, rate,

View File

@ -20,6 +20,7 @@ from __future__ import print_function
from tensorflow.python.framework import constant_op from tensorflow.python.framework import constant_op
from tensorflow.python.ops.distributions import bijector from tensorflow.python.ops.distributions import bijector
from tensorflow.python.util import deprecation
__all__ = [ __all__ = [
@ -43,6 +44,14 @@ class Identity(bijector.Bijector):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, validate_args=False, name="identity"): def __init__(self, validate_args=False, name="identity"):
super(Identity, self).__init__( super(Identity, self).__init__(
forward_min_event_ndims=0, forward_min_event_ndims=0,

View File

@ -22,6 +22,7 @@ from tensorflow.python.framework import ops
from tensorflow.python.ops import array_ops from tensorflow.python.ops import array_ops
from tensorflow.python.ops import control_flow_ops from tensorflow.python.ops import control_flow_ops
from tensorflow.python.ops import math_ops from tensorflow.python.ops import math_ops
from tensorflow.python.util import deprecation
from tensorflow.python.util import tf_inspect from tensorflow.python.util import tf_inspect
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -51,6 +52,14 @@ def _registered_kl(type_a, type_b):
return kl_fn return kl_fn
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
@tf_export("distributions.kl_divergence") @tf_export("distributions.kl_divergence")
def kl_divergence(distribution_a, distribution_b, def kl_divergence(distribution_a, distribution_b,
allow_nan_stats=True, name=None): allow_nan_stats=True, name=None):
@ -112,6 +121,14 @@ def kl_divergence(distribution_a, distribution_b,
return array_ops.identity(kl_t, name="checked_kl") return array_ops.identity(kl_t, name="checked_kl")
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def cross_entropy(ref, other, def cross_entropy(ref, other,
allow_nan_stats=True, name=None): allow_nan_stats=True, name=None):
"""Computes the (Shannon) cross entropy. """Computes the (Shannon) cross entropy.
@ -155,6 +172,14 @@ class RegisterKL(object):
# Return KL(norm_a || norm_b) # Return KL(norm_a || norm_b)
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, dist_cls_a, dist_cls_b): def __init__(self, dist_cls_a, dist_cls_b):
"""Initialize the KL registrar. """Initialize the KL registrar.

View File

@ -33,6 +33,7 @@ from tensorflow.python.ops import nn
from tensorflow.python.ops import random_ops from tensorflow.python.ops import random_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import special_math from tensorflow.python.ops.distributions import special_math
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -71,6 +72,14 @@ class Laplace(distribution.Distribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
loc, loc,
scale, scale,
@ -211,6 +220,11 @@ class Laplace(distribution.Distribution):
class LaplaceWithSoftplusScale(Laplace): class LaplaceWithSoftplusScale(Laplace):
"""Laplace with softplus applied to `scale`.""" """Laplace with softplus applied to `scale`."""
@deprecation.deprecated(
"2019-01-01",
"Use `tfd.Laplace(loc, tf.nn.softplus(scale)) "
"instead.",
warn_once=True)
def __init__(self, def __init__(self,
loc, loc,
scale, scale,

View File

@ -29,6 +29,7 @@ from tensorflow.python.ops import nn_ops
from tensorflow.python.ops import random_ops from tensorflow.python.ops import random_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import util as distribution_util from tensorflow.python.ops.distributions import util as distribution_util
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -148,6 +149,14 @@ class Multinomial(distribution.Distribution):
``` ```
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
total_count, total_count,
logits=None, logits=None,

View File

@ -32,6 +32,7 @@ from tensorflow.python.ops import random_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import kullback_leibler from tensorflow.python.ops.distributions import kullback_leibler
from tensorflow.python.ops.distributions import special_math from tensorflow.python.ops.distributions import special_math
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -106,6 +107,14 @@ class Normal(distribution.Distribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
loc, loc,
scale, scale,
@ -240,6 +249,11 @@ class Normal(distribution.Distribution):
class NormalWithSoftplusScale(Normal): class NormalWithSoftplusScale(Normal):
"""Normal with softplus applied to `scale`.""" """Normal with softplus applied to `scale`."""
@deprecation.deprecated(
"2019-01-01",
"Use `tfd.Normal(loc, tf.nn.softplus(scale)) "
"instead.",
warn_once=True)
def __init__(self, def __init__(self,
loc, loc,
scale, scale,

View File

@ -33,6 +33,7 @@ from tensorflow.python.ops import random_ops
from tensorflow.python.ops import special_math_ops from tensorflow.python.ops import special_math_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.ops.distributions import util as distribution_util from tensorflow.python.ops.distributions import util as distribution_util
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -140,6 +141,14 @@ class StudentT(distribution.Distribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
df, df,
loc, loc,
@ -361,6 +370,11 @@ class StudentT(distribution.Distribution):
class StudentTWithAbsDfSoftplusScale(StudentT): class StudentTWithAbsDfSoftplusScale(StudentT):
"""StudentT with `df = floor(abs(df))` and `scale = softplus(scale)`.""" """StudentT with `df = floor(abs(df))` and `scale = softplus(scale)`."""
@deprecation.deprecated(
"2019-01-01",
"Use `tfd.StudentT(tf.floor(tf.abs(df)), loc, "
"tf.nn.softplus(scale)) instead.",
warn_once=True)
def __init__(self, def __init__(self,
df, df,
loc, loc,

View File

@ -30,6 +30,7 @@ from tensorflow.python.ops import math_ops
from tensorflow.python.ops.distributions import distribution as distribution_lib from tensorflow.python.ops.distributions import distribution as distribution_lib
from tensorflow.python.ops.distributions import identity_bijector from tensorflow.python.ops.distributions import identity_bijector
from tensorflow.python.ops.distributions import util as distribution_util from tensorflow.python.ops.distributions import util as distribution_util
from tensorflow.python.util import deprecation
__all__ = [ __all__ = [
"TransformedDistribution", "TransformedDistribution",
@ -227,6 +228,14 @@ class TransformedDistribution(distribution_lib.Distribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
distribution, distribution,
bijector=None, bijector=None,

View File

@ -29,6 +29,7 @@ from tensorflow.python.ops import check_ops
from tensorflow.python.ops import math_ops from tensorflow.python.ops import math_ops
from tensorflow.python.ops import random_ops from tensorflow.python.ops import random_ops
from tensorflow.python.ops.distributions import distribution from tensorflow.python.ops.distributions import distribution
from tensorflow.python.util import deprecation
from tensorflow.python.util.tf_export import tf_export from tensorflow.python.util.tf_export import tf_export
@ -76,6 +77,14 @@ class Uniform(distribution.Distribution):
""" """
@deprecation.deprecated(
"2019-01-01",
"The TensorFlow Distributions library has moved to "
"TensorFlow Probability "
"(https://github.com/tensorflow/probability). You "
"should update all references to use `tfp.distributions` "
"instead of `tf.distributions`.",
warn_once=True)
def __init__(self, def __init__(self,
low=0., low=0.,
high=1., high=1.,