提交 cf930d36 编写于 作者: T TensorFlower Gardener

Merge pull request #15209 from harupy:specify-stacklevel

PiperOrigin-RevId: 393882385
......@@ -103,8 +103,10 @@ def write_ckpt_to_h5(path_h5, path_ckpt, keras_model, use_ema=True):
changed_weights += 1
except ValueError as e:
if any([x in w.name for x in ['top', 'predictions', 'probs']]):
warnings.warn('Fail to load top layer variable {}'
'from {} because of {}.'.format(w.name, tf_name, e))
warnings.warn(
'Fail to load top layer variable {}'
'from {} because of {}.'.format(w.name, tf_name, e),
stacklevel=2)
else:
raise ValueError('Fail to load {} from {}'.format(w.name, tf_name))
......@@ -329,8 +331,10 @@ def check_match(keras_block, tf_block, keras_weight_names, tf_weight_names,
names_unused = names_from_tf - names_from_keras
if names_unused:
warnings.warn('{} variables from checkpoint file are not used: {}'.format(
len(names_unused), names_unused))
warnings.warn(
'{} variables from checkpoint file are not used: {}'.format(
len(names_unused), names_unused),
stacklevel=2)
if __name__ == '__main__':
......
......@@ -324,15 +324,19 @@ def obtain_input_shape(input_shape,
if weights != 'imagenet' and input_shape and len(input_shape) == 3:
if data_format == 'channels_first':
if input_shape[0] not in {1, 3}:
warnings.warn('This model usually expects 1 or 3 input channels. '
'However, it was passed an input_shape with ' +
str(input_shape[0]) + ' input channels.')
warnings.warn(
'This model usually expects 1 or 3 input channels. '
'However, it was passed an input_shape with ' +
str(input_shape[0]) + ' input channels.',
stacklevel=2)
default_shape = (input_shape[0], default_size, default_size)
else:
if input_shape[-1] not in {1, 3}:
warnings.warn('This model usually expects 1 or 3 input channels. '
'However, it was passed an input_shape with ' +
str(input_shape[-1]) + ' input channels.')
warnings.warn(
'This model usually expects 1 or 3 input channels. '
'However, it was passed an input_shape with ' +
str(input_shape[-1]) + ' input channels.',
stacklevel=2)
default_shape = (default_size, default_size, input_shape[-1])
else:
if data_format == 'channels_first':
......
......@@ -469,10 +469,12 @@ def learning_phase_scope(value):
Raises:
ValueError: if `value` is neither `0` nor `1`.
"""
warnings.warn('`tf.keras.backend.learning_phase_scope` is deprecated and '
'will be removed after 2020-10-11. To update it, simply '
'pass a True/False value to the `training` argument of the '
'`__call__` method of your layer or model.')
warnings.warn(
'`tf.keras.backend.learning_phase_scope` is deprecated and '
'will be removed after 2020-10-11. To update it, simply '
'pass a True/False value to the `training` argument of the '
'`__call__` method of your layer or model.',
stacklevel=2)
with deprecated_internal_learning_phase_scope(value):
try:
yield
......@@ -4999,7 +5001,8 @@ def categorical_crossentropy(target, output, from_logits=False, axis=-1):
warnings.warn(
'"`categorical_crossentropy` received `from_logits=True`, but '
'the `output` argument was produced by a sigmoid or softmax '
'activation and thus does not represent logits. Was this intended?"')
'activation and thus does not represent logits. Was this intended?"',
stacklevel=2)
from_logits = True
if from_logits:
......@@ -5059,7 +5062,8 @@ def sparse_categorical_crossentropy(target, output, from_logits=False, axis=-1):
warnings.warn(
'"`sparse_categorical_crossentropy` received `from_logits=True`, but '
'the `output` argument was produced by a sigmoid or softmax '
'activation and thus does not represent logits. Was this intended?"')
'activation and thus does not represent logits. Was this intended?"',
stacklevel=2)
from_logits = True
elif (not from_logits and
not isinstance(output, (tf.__internal__.EagerTensor, tf.Variable)) and
......@@ -5146,7 +5150,8 @@ def binary_crossentropy(target, output, from_logits=False):
warnings.warn(
'"`binary_crossentropy` received `from_logits=True`, but the `output`'
' argument was produced by a sigmoid or softmax activation and thus '
'does not represent logits. Was this intended?"')
'does not represent logits. Was this intended?"',
stacklevel=2)
from_logits = True
if from_logits:
......@@ -6239,9 +6244,11 @@ def random_binomial(shape, p=0.0, dtype=None, seed=None):
<tf.Tensor: shape=(2, 3), dtype=float32, numpy=...,
dtype=float32)>
"""
warnings.warn('`tf.keras.backend.random_binomial` is deprecated, '
'and will be removed in a future version.'
'Please use `tf.keras.backend.random_bernoulli` instead.')
warnings.warn(
'`tf.keras.backend.random_binomial` is deprecated, '
'and will be removed in a future version.'
'Please use `tf.keras.backend.random_bernoulli` instead.',
stacklevel=2)
return random_bernoulli(shape, p, dtype, seed)
......
......@@ -1392,9 +1392,11 @@ class Layer(tf.Module, version_utils.LayerVersionSelector):
@property
@doc_controls.do_not_generate_docs
def updates(self):
warnings.warn('`layer.updates` will be removed in a future version. '
'This property should not be used in TensorFlow 2.0, '
'as `updates` are applied automatically.')
warnings.warn(
'`layer.updates` will be removed in a future version. '
'This property should not be used in TensorFlow 2.0, '
'as `updates` are applied automatically.',
stacklevel=2)
return []
@property
......@@ -1925,9 +1927,11 @@ class Layer(tf.Module, version_utils.LayerVersionSelector):
Returns:
List of update ops of the layer that depend on `inputs`.
"""
warnings.warn('`layer.get_updates_for` is deprecated and '
'will be removed in a future version. '
'Please use `layer.updates` method instead.')
warnings.warn(
'`layer.get_updates_for` is deprecated and '
'will be removed in a future version. '
'Please use `layer.updates` method instead.',
stacklevel=2)
return self.updates
@doc_controls.do_not_generate_docs
......@@ -1942,9 +1946,11 @@ class Layer(tf.Module, version_utils.LayerVersionSelector):
Returns:
List of loss tensors of the layer that depend on `inputs`.
"""
warnings.warn('`layer.get_losses_for` is deprecated and '
'will be removed in a future version. '
'Please use `layer.losses` instead.')
warnings.warn(
'`layer.get_losses_for` is deprecated and '
'will be removed in a future version. '
'Please use `layer.losses` instead.',
stacklevel=2)
return self.losses
@doc_controls.do_not_doc_inheritable
......@@ -2264,17 +2270,21 @@ class Layer(tf.Module, version_utils.LayerVersionSelector):
Returns:
Output tensor(s).
"""
warnings.warn('`layer.apply` is deprecated and '
'will be removed in a future version. '
'Please use `layer.__call__` method instead.')
warnings.warn(
'`layer.apply` is deprecated and '
'will be removed in a future version. '
'Please use `layer.__call__` method instead.',
stacklevel=2)
return self.__call__(inputs, *args, **kwargs)
@doc_controls.do_not_doc_inheritable
def add_variable(self, *args, **kwargs):
"""Deprecated, do NOT use! Alias for `add_weight`."""
warnings.warn('`layer.add_variable` is deprecated and '
'will be removed in a future version. '
'Please use `layer.add_weight` method instead.')
warnings.warn(
'`layer.add_variable` is deprecated and '
'will be removed in a future version. '
'Please use `layer.add_weight` method instead.',
stacklevel=2)
return self.add_weight(*args, **kwargs)
@property
......
......@@ -1673,17 +1673,21 @@ class Layer(base_layer.Layer):
Returns:
Output tensor(s).
"""
warnings.warn('`layer.apply` is deprecated and '
'will be removed in a future version. '
'Please use `layer.__call__` method instead.')
warnings.warn(
'`layer.apply` is deprecated and '
'will be removed in a future version. '
'Please use `layer.__call__` method instead.',
stacklevel=2)
return self.__call__(inputs, *args, **kwargs)
@doc_controls.do_not_doc_inheritable
def add_variable(self, *args, **kwargs):
"""Deprecated, do NOT use! Alias for `add_weight`."""
warnings.warn('`layer.add_variable` is deprecated and '
'will be removed in a future version. '
'Please use `layer.add_weight` method instead.')
warnings.warn(
'`layer.add_variable` is deprecated and '
'will be removed in a future version. '
'Please use `layer.add_weight` method instead.',
stacklevel=2)
return self.add_weight(*args, **kwargs)
@property
......
......@@ -593,8 +593,8 @@ class Functional(training_lib.Model):
warnings.warn(
'Input dict contained keys {} which did not match any model input. '
'They will be ignored by the model.'.format(
[n for n in tensors.keys() if n not in ref_input_names])
)
[n for n in tensors.keys() if n not in ref_input_names]),
stacklevel=2)
try:
# Flatten in the order `Input`s were passed during Model construction.
......
......@@ -1717,10 +1717,12 @@ class Model(base_layer.Layer, version_utils.ModelVersionSelector):
options.experimental_distribute.auto_shard_policy = data_option
x = x.with_options(options)
except ValueError:
warnings.warn('Using Model.predict with '
'MultiWorkerDistributionStrategy or TPUStrategy and '
'AutoShardPolicy.FILE might lead to out-of-order result'
'. Consider setting it to AutoShardPolicy.DATA.')
warnings.warn(
'Using Model.predict with '
'MultiWorkerDistributionStrategy or TPUStrategy and '
'AutoShardPolicy.FILE might lead to out-of-order result'
'. Consider setting it to AutoShardPolicy.DATA.',
stacklevel=2)
data_handler = data_adapter.get_data_handler(
x=x,
......@@ -1975,9 +1977,11 @@ class Model(base_layer.Layer, version_utils.ModelVersionSelector):
`Model.fit` now supports generators, so there is no longer any need to use
this endpoint.
"""
warnings.warn('`Model.fit_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.fit`, which supports generators.')
warnings.warn(
'`Model.fit_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.fit`, which supports generators.',
stacklevel=2)
return self.fit(
generator,
steps_per_epoch=steps_per_epoch,
......@@ -2009,9 +2013,11 @@ class Model(base_layer.Layer, version_utils.ModelVersionSelector):
`Model.evaluate` now supports generators, so there is no longer any need
to use this endpoint.
"""
warnings.warn('`Model.evaluate_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.evaluate`, which supports generators.')
warnings.warn(
'`Model.evaluate_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.evaluate`, which supports generators.',
stacklevel=2)
self._check_call_args('evaluate_generator')
return self.evaluate(
......@@ -2038,9 +2044,11 @@ class Model(base_layer.Layer, version_utils.ModelVersionSelector):
`Model.predict` now supports generators, so there is no longer any need
to use this endpoint.
"""
warnings.warn('`Model.predict_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.predict`, which supports generators.')
warnings.warn(
'`Model.predict_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.predict`, which supports generators.',
stacklevel=2)
return self.predict(
generator,
steps=steps,
......@@ -2478,9 +2486,11 @@ class Model(base_layer.Layer, version_utils.ModelVersionSelector):
Returns:
A list of update ops.
"""
warnings.warn('`Model.state_updates` will be removed in a future version. '
'This property should not be used in TensorFlow 2.0, '
'as `updates` are applied automatically.')
warnings.warn(
'`Model.state_updates` will be removed in a future version. '
'This property should not be used in TensorFlow 2.0, '
'as `updates` are applied automatically.',
stacklevel=2)
state_updates = []
for layer in self.layers:
if getattr(layer, 'stateful', False):
......
......@@ -1225,9 +1225,11 @@ class Model(training_lib.Model):
`Model.fit` now supports generators, so there is no longer any need to use
this endpoint.
"""
warnings.warn('`model.fit_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.fit`, which supports generators.')
warnings.warn(
'`model.fit_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.fit`, which supports generators.',
stacklevel=2)
return self.fit(
generator,
steps_per_epoch=steps_per_epoch,
......@@ -1258,9 +1260,11 @@ class Model(training_lib.Model):
`Model.evaluate` now supports generators, so there is no longer any need
to use this endpoint.
"""
warnings.warn('`Model.evaluate_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.evaluate`, which supports generators.')
warnings.warn(
'`Model.evaluate_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.evaluate`, which supports generators.',
stacklevel=2)
self._check_call_args('evaluate_generator')
return self.evaluate(
......@@ -1286,9 +1290,11 @@ class Model(training_lib.Model):
`Model.predict` now supports generators, so there is no longer any need
to use this endpoint.
"""
warnings.warn('`Model.predict_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.predict`, which supports generators.')
warnings.warn(
'`Model.predict_generator` is deprecated and '
'will be removed in a future version. '
'Please use `Model.predict`, which supports generators.',
stacklevel=2)
return self.predict(
generator,
steps=steps,
......
......@@ -335,7 +335,9 @@ class Lambda(Layer):
# Note: we don't know the name of the function if it's a lambda.
warnings.warn(
'{} is not loaded, but a Lambda layer uses it. '
'It may cause errors.'.format(module), UserWarning)
'It may cause errors.'.format(module),
UserWarning,
stacklevel=2)
if custom_objects:
globs.update(custom_objects)
function_type = config.pop(func_type_attr_name)
......
......@@ -413,10 +413,12 @@ class BasicRNNCell(LayerRNNCell):
name=None,
dtype=None,
**kwargs):
warnings.warn("`tf.nn.rnn_cell.BasicRNNCell` is deprecated and will be "
"removed in a future version. This class "
"is equivalent as `tf.keras.layers.SimpleRNNCell`, "
"and will be replaced by that in Tensorflow 2.0.")
warnings.warn(
"`tf.nn.rnn_cell.BasicRNNCell` is deprecated and will be "
"removed in a future version. This class "
"is equivalent as `tf.keras.layers.SimpleRNNCell`, "
"and will be replaced by that in Tensorflow 2.0.",
stacklevel=2)
super(BasicRNNCell, self).__init__(
_reuse=reuse, name=name, dtype=dtype, **kwargs)
_check_supported_dtypes(self.dtype)
......@@ -523,10 +525,12 @@ class GRUCell(LayerRNNCell):
name=None,
dtype=None,
**kwargs):
warnings.warn("`tf.nn.rnn_cell.GRUCell` is deprecated and will be removed "
"in a future version. This class "
"is equivalent as `tf.keras.layers.GRUCell`, "
"and will be replaced by that in Tensorflow 2.0.")
warnings.warn(
"`tf.nn.rnn_cell.GRUCell` is deprecated and will be removed "
"in a future version. This class "
"is equivalent as `tf.keras.layers.GRUCell`, "
"and will be replaced by that in Tensorflow 2.0.",
stacklevel=2)
super(GRUCell, self).__init__(
_reuse=reuse, name=name, dtype=dtype, **kwargs)
_check_supported_dtypes(self.dtype)
......@@ -699,10 +703,12 @@ class BasicLSTMCell(LayerRNNCell):
When restoring from CudnnLSTM-trained checkpoints, must use
`CudnnCompatibleLSTMCell` instead.
"""
warnings.warn("`tf.nn.rnn_cell.BasicLSTMCell` is deprecated and will be "
"removed in a future version. This class "
"is equivalent as `tf.keras.layers.LSTMCell`, "
"and will be replaced by that in Tensorflow 2.0.")
warnings.warn(
"`tf.nn.rnn_cell.BasicLSTMCell` is deprecated and will be "
"removed in a future version. This class "
"is equivalent as `tf.keras.layers.LSTMCell`, "
"and will be replaced by that in Tensorflow 2.0.",
stacklevel=2)
super(BasicLSTMCell, self).__init__(
_reuse=reuse, name=name, dtype=dtype, **kwargs)
_check_supported_dtypes(self.dtype)
......@@ -902,10 +908,12 @@ class LSTMCell(LayerRNNCell):
When restoring from CudnnLSTM-trained checkpoints, use
`CudnnCompatibleLSTMCell` instead.
"""
warnings.warn("`tf.nn.rnn_cell.LSTMCell` is deprecated and will be "
"removed in a future version. This class "
"is equivalent as `tf.keras.layers.LSTMCell`, "
"and will be replaced by that in Tensorflow 2.0.")
warnings.warn(
"`tf.nn.rnn_cell.LSTMCell` is deprecated and will be "
"removed in a future version. This class "
"is equivalent as `tf.keras.layers.LSTMCell`, "
"and will be replaced by that in Tensorflow 2.0.",
stacklevel=2)
super(LSTMCell, self).__init__(
_reuse=reuse, name=name, dtype=dtype, **kwargs)
_check_supported_dtypes(self.dtype)
......
......@@ -468,8 +468,11 @@ def _parse_config_to_function(config, custom_objects, func_attr_name,
globs.update(sys.modules[module].__dict__)
elif module is not None:
# Note: we don't know the name of the function if it's a lambda.
warnings.warn("{} is not loaded, but a layer uses it. "
"It may cause errors.".format(module), UserWarning)
warnings.warn(
"{} is not loaded, but a layer uses it. "
"It may cause errors.".format(module),
UserWarning,
stacklevel=2)
if custom_objects:
globs.update(custom_objects)
function_type = config.pop(func_type_attr_name)
......
......@@ -2596,10 +2596,12 @@ class PeepholeLSTMCell(LSTMCell):
dropout=0.,
recurrent_dropout=0.,
**kwargs):
warnings.warn('`tf.keras.experimental.PeepholeLSTMCell` is deprecated '
'and will be removed in a future version. '
'Please use tensorflow_addons.rnn.PeepholeLSTMCell '
'instead.')
warnings.warn(
'`tf.keras.experimental.PeepholeLSTMCell` is deprecated '
'and will be removed in a future version. '
'Please use tensorflow_addons.rnn.PeepholeLSTMCell '
'instead.',
stacklevel=2)
super(PeepholeLSTMCell, self).__init__(
units=units,
activation=activation,
......
......@@ -243,10 +243,12 @@ class Layer(base_layer.Layer):
# maintain API backward compatibility.
@property
def graph(self):
warnings.warn('`Layer.graph` is deprecated and '
'will be removed in a future version. '
'Please stop using this property because tf.layers layers no '
'longer track their graph.')
warnings.warn(
'`Layer.graph` is deprecated and '
'will be removed in a future version. '
'Please stop using this property because tf.layers layers no '
'longer track their graph.',
stacklevel=2)
if tf.executing_eagerly():
raise RuntimeError('Layer.graph not supported when executing eagerly.')
return None
......
......@@ -260,9 +260,11 @@ def conv1d(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.conv1d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv1D` instead.')
warnings.warn(
'`tf.layers.conv1d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv1D` instead.',
stacklevel=2)
layer = Conv1D(
filters=filters,
kernel_size=kernel_size,
......@@ -533,9 +535,11 @@ def conv2d(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.conv2d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv2D` instead.')
warnings.warn(
'`tf.layers.conv2d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv2D` instead.',
stacklevel=2)
layer = Conv2D(
filters=filters,
kernel_size=kernel_size,
......@@ -808,9 +812,11 @@ def conv3d(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.conv3d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv3D` instead.')
warnings.warn(
'`tf.layers.conv3d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv3D` instead.',
stacklevel=2)
layer = Conv3D(
filters=filters,
kernel_size=kernel_size,
......@@ -1241,9 +1247,11 @@ def separable_conv1d(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.separable_conv1d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.SeparableConv1D` instead.')
warnings.warn(
'`tf.layers.separable_conv1d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.SeparableConv1D` instead.',
stacklevel=2)
layer = SeparableConv1D(
filters=filters,
kernel_size=kernel_size,
......@@ -1402,9 +1410,11 @@ def separable_conv2d(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.separable_conv2d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.SeparableConv2D` instead.')
warnings.warn(
'`tf.layers.separable_conv2d` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.SeparableConv2D` instead.',
stacklevel=2)
layer = SeparableConv2D(
filters=filters,
kernel_size=kernel_size,
......@@ -1657,9 +1667,11 @@ def conv2d_transpose(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.conv2d_transpose` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv2DTranspose` instead.')
warnings.warn(
'`tf.layers.conv2d_transpose` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv2DTranspose` instead.',
stacklevel=2)
layer = Conv2DTranspose(
filters=filters,
kernel_size=kernel_size,
......@@ -1898,9 +1910,11 @@ def conv3d_transpose(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.conv3d_transpose` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv3DTranspose` instead.')
warnings.warn(
'`tf.layers.conv3d_transpose` is deprecated and '
'will be removed in a future version. '
'Please Use `tf.keras.layers.Conv3DTranspose` instead.',
stacklevel=2)
layer = Conv3DTranspose(
filters=filters,
kernel_size=kernel_size,
......
......@@ -233,9 +233,11 @@ def dense(
@end_compatibility
"""
warnings.warn('`tf.layers.dense` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.Dense` instead.')
warnings.warn(
'`tf.layers.dense` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.Dense` instead.',
stacklevel=2)
layer = Dense(units,
activation=activation,
use_bias=use_bias,
......@@ -390,9 +392,11 @@ def dropout(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.dropout` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.Dropout` instead.')
warnings.warn(
'`tf.layers.dropout` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.Dropout` instead.',
stacklevel=2)
layer = Dropout(rate, noise_shape=noise_shape, seed=seed, name=name)
return layer.apply(inputs, training=training)
......@@ -510,9 +514,11 @@ def flatten(inputs, name=None, data_format='channels_last'):
```
@end_compatibility
"""
warnings.warn('`tf.layers.flatten` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.Flatten` instead.')
warnings.warn(
'`tf.layers.flatten` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.Flatten` instead.',
stacklevel=2)
layer = Flatten(name=name, data_format=data_format)
return layer.apply(inputs)
......
......@@ -426,7 +426,8 @@ def batch_normalization(inputs,
'Please use `tf.keras.layers.BatchNormalization` instead. '
'In particular, `tf.control_dependencies(tf.GraphKeys.UPDATE_OPS)` '
'should not be used (consult the `tf.keras.layers.BatchNormalization` '
'documentation).')
'documentation).',
stacklevel=2)
layer = BatchNormalization(
axis=axis,
momentum=momentum,
......
......@@ -147,9 +147,11 @@ def average_pooling1d(inputs, pool_size, strides,
```
@end_compatibility
"""
warnings.warn('`tf.layers.average_pooling1d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.AveragePooling1D` instead.')
warnings.warn(
'`tf.layers.average_pooling1d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.AveragePooling1D` instead.',
stacklevel=2)
layer = AveragePooling1D(pool_size=pool_size,
strides=strides,
padding=padding,
......@@ -279,9 +281,11 @@ def max_pooling1d(inputs, pool_size, strides,
```
@end_compatibility
"""
warnings.warn('`tf.layers.max_pooling1d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.MaxPooling1D` instead.')
warnings.warn(
'`tf.layers.max_pooling1d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.MaxPooling1D` instead.',
stacklevel=2)
layer = MaxPooling1D(pool_size=pool_size,
strides=strides,
padding=padding,
......@@ -416,9 +420,11 @@ def average_pooling2d(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.average_pooling2d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.AveragePooling2D` instead.')
warnings.warn(
'`tf.layers.average_pooling2d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.AveragePooling2D` instead.',
stacklevel=2)
layer = AveragePooling2D(pool_size=pool_size, strides=strides,
padding=padding, data_format=data_format,
name=name)
......@@ -551,9 +557,11 @@ def max_pooling2d(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.max_pooling2d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.MaxPooling2D` instead.')
warnings.warn(
'`tf.layers.max_pooling2d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.MaxPooling2D` instead.',
stacklevel=2)
layer = MaxPooling2D(pool_size=pool_size, strides=strides,
padding=padding, data_format=data_format,
name=name)
......@@ -690,9 +698,11 @@ def average_pooling3d(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.average_pooling3d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.AveragePooling3D` instead.')
warnings.warn(
'`tf.layers.average_pooling3d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.AveragePooling3D` instead.',
stacklevel=2)
layer = AveragePooling3D(pool_size=pool_size, strides=strides,
padding=padding, data_format=data_format,
name=name)
......@@ -827,9 +837,11 @@ def max_pooling3d(inputs,
```
@end_compatibility
"""
warnings.warn('`tf.layers.max_pooling3d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.MaxPooling3D` instead.')
warnings.warn(
'`tf.layers.max_pooling3d` is deprecated and '
'will be removed in a future version. '
'Please use `tf.keras.layers.MaxPooling3D` instead.',
stacklevel=2)
layer = MaxPooling3D(pool_size=pool_size, strides=strides,
padding=padding, data_format=data_format,
name=name)
......
......@@ -255,10 +255,12 @@ class Metric(base_layer.Layer, metaclass=abc.ABCMeta):
when a metric is evaluated during training.
"""
if not generic_utils.is_default(self.reset_states):
warnings.warn('Metric %s implements a `reset_states()` method; rename it '
'to `reset_state()` (without the final "s"). The name '
'`reset_states()` has been deprecated to improve API '
'consistency.' % (self.__class__.__name__,))
warnings.warn(
'Metric %s implements a `reset_states()` method; rename it '
'to `reset_state()` (without the final "s"). The name '
'`reset_states()` has been deprecated to improve API '
'consistency.' % (self.__class__.__name__,),
stacklevel=2)
return self.reset_states()
else:
backend.batch_set_value([(v, 0) for v in self.variables])
......
......@@ -354,7 +354,8 @@ class OptimizerV2(tf.__internal__.tracking.Trackable):
raise ValueError("Expected {} >= 0, received: {}".format(k, kwargs[k]))
if k == "lr":
warnings.warn(
"The `lr` argument is deprecated, use `learning_rate` instead.")
"The `lr` argument is deprecated, use `learning_rate` instead.",
stacklevel=2)
self._use_locking = True
self._init_set_name(name)
......
......@@ -114,10 +114,12 @@ def export_saved_model(model,
ValueError: If the input signature cannot be inferred from the model.
AssertionError: If the SavedModel directory already exists and isn't empty.
"""
warnings.warn('`tf.keras.experimental.export_saved_model` is deprecated'
'and will be removed in a future version. '
'Please use `model.save(..., save_format="tf")` or '
'`tf.keras.models.save_model(..., save_format="tf")`.')
warnings.warn(
'`tf.keras.experimental.export_saved_model` is deprecated'
'and will be removed in a future version. '
'Please use `model.save(..., save_format="tf")` or '
'`tf.keras.models.save_model(..., save_format="tf")`.',
stacklevel=2)
if serving_only:
tf.saved_model.save(
model,
......@@ -398,9 +400,11 @@ def load_from_saved_model(saved_model_path, custom_objects=None):
Returns:
a keras.Model instance.
"""
warnings.warn('`tf.keras.experimental.load_from_saved_model` is deprecated'
'and will be removed in a future version. '
'Please switch to `tf.keras.models.load_model`.')
warnings.warn(
'`tf.keras.experimental.load_from_saved_model` is deprecated'
'and will be removed in a future version. '
'Please switch to `tf.keras.models.load_model`.',
stacklevel=2)
# restore model topology from json string
model_json_filepath = os.path.join(
tf.compat.as_bytes(saved_model_path),
......
......@@ -499,10 +499,12 @@ def serialize_keras_object(instance):
or (hasattr(instance, 'compute_mask')
and not is_default(instance.compute_mask)))
if supports_masking and is_default(instance.get_config):
warnings.warn('Custom mask layers require a config and must override '
'get_config. When loading, the custom mask layer must be '
'passed to the custom_objects argument.',
category=CustomMaskWarning)
warnings.warn(
'Custom mask layers require a config and must override '
'get_config. When loading, the custom mask layer must be '
'passed to the custom_objects argument.',
category=CustomMaskWarning,
stacklevel=2)
# pylint: enable=protected-access
if hasattr(instance, 'get_config'):
......
......@@ -197,8 +197,8 @@ class KerasClassifier(BaseWrapper):
warnings.warn(
'KerasClassifier is deprecated, '
'use Sci-Keras (https://github.com/adriangb/scikeras) instead.',
DeprecationWarning
)
DeprecationWarning,
stacklevel=2)
super().__init__(build_fn, **sk_params)
def fit(self, x, y, **kwargs):
......@@ -334,8 +334,8 @@ class KerasRegressor(BaseWrapper):
warnings.warn(
'KerasRegressor is deprecated, '
'use Sci-Keras (https://github.com/adriangb/scikeras) instead.',
DeprecationWarning
)
DeprecationWarning,
stacklevel=2)
super().__init__(build_fn, **sk_params)
def predict(self, x, **kwargs):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册