diff options
author | Asim Shankar <ashankar@google.com> | 2018-09-21 00:46:12 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-09-21 00:50:12 -0700 |
commit | 347201aa1e866f5899d000f40251c4090bcf3c73 (patch) | |
tree | 1404db2507bd259552080a0a2845808488431f58 /tensorflow/python/keras | |
parent | b19d6657070bbf1df5706195a0bf3a92cbf371fc (diff) |
keras/training.py: Improve error message.
Inspired by:
https://stackoverflow.com/questions/52428939/eager-mode-optimizers/
PiperOrigin-RevId: 213948133
Diffstat (limited to 'tensorflow/python/keras')
-rw-r--r-- | tensorflow/python/keras/engine/training.py | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/tensorflow/python/keras/engine/training.py b/tensorflow/python/keras/engine/training.py index 7df72d45b4..154c219dcc 100644 --- a/tensorflow/python/keras/engine/training.py +++ b/tensorflow/python/keras/engine/training.py @@ -383,27 +383,31 @@ class Model(Network): """ # Validate that arguments passed by the user to `compile` are supported by # DistributionStrategy. - if distribute and not isinstance( - optimizer, (tf_optimizer_module.Optimizer, optimizers.TFOptimizer)): - raise NotImplementedError('Only TF native optimizers are supported with ' - 'DistributionStrategy.') - if distribute and context.executing_eagerly(): - raise NotImplementedError('DistributionStrategy is not supported in ' - 'Eager mode.') - if distribute and sample_weight_mode: - raise NotImplementedError('sample_weight_mode is not supported with ' - 'DistributionStrategy.') - if distribute and weighted_metrics: - raise NotImplementedError('weighted_metrics is not supported with ' - 'DistributionStrategy.') - if distribute and target_tensors: - raise ValueError('target_tensors is not supported with ' - 'DistributionStrategy.') + if distribute: + if not isinstance( + optimizer, (tf_optimizer_module.Optimizer, optimizers.TFOptimizer)): + raise NotImplementedError( + 'optimizer must be an instance of ' + 'tf.train.Optimizer, not a %s' % type(optimizer)) + if context.executing_eagerly(): + raise NotImplementedError('DistributionStrategy is not supported ' + 'when eager execution is enabled.') + if sample_weight_mode: + raise NotImplementedError('sample_weight_mode is not supported with ' + 'DistributionStrategy.') + if weighted_metrics: + raise NotImplementedError('weighted_metrics is not supported with ' + 'DistributionStrategy.') + if target_tensors: + raise ValueError('target_tensors is not supported with ' + 'DistributionStrategy.') loss = loss or {} if context.executing_eagerly() and not isinstance( optimizer, (tf_optimizer_module.Optimizer, optimizers.TFOptimizer)): - raise ValueError('Only TF native optimizers are supported in Eager mode.') + raise ValueError( + 'optimizer must be an instance of tf.train.Optimizer, not ' + 'a %s' % type(optimizer)) self.optimizer = optimizers.get(optimizer) # We've disabled automatic dependency tracking for this method, but do want |