Skip to content

Commit fc4ce16

Browse files
Switch away from contrib where possible in tensorflow_models/official
PiperOrigin-RevId: 288064272
1 parent 39f4e42 commit fc4ce16

File tree

7 files changed

+34
-27
lines changed

7 files changed

+34
-27
lines changed

official/nlp/xlnet/data_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ def _single_token_mask(inputs, tgt_len, num_predict):
400400
non_func_indices = tf.boolean_mask(all_indices, non_func_mask)
401401

402402
masked_pos = tf.random.shuffle(non_func_indices)
403-
masked_pos = tf.contrib.framework.sort(masked_pos[:num_predict])
403+
masked_pos = tf.sort(masked_pos[:num_predict])
404404
target_mask = tf.sparse_to_dense(
405405
sparse_indices=masked_pos,
406406
output_shape=[tgt_len],

official/r1/boosted_trees/train_higgs.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@ def train_boosted_trees(flags_obj):
229229

230230
# Though BoostedTreesClassifier is under tf.estimator, faster in-memory
231231
# training is yet provided as a contrib library.
232-
classifier = tf.contrib.estimator.boosted_trees_classifier_train_in_memory(
232+
from tensorflow.contrib import estimator as contrib_estimator # pylint: disable=g-import-not-at-top
233+
classifier = contrib_estimator.boosted_trees_classifier_train_in_memory(
233234
train_input_fn,
234235
feature_columns,
235236
model_dir=flags_obj.model_dir or None,

official/r1/mnist/mnist_eager.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,21 @@ def compute_accuracy(logits, labels):
5858

5959
def train(model, optimizer, dataset, step_counter, log_interval=None):
6060
"""Trains model on `dataset` using `optimizer`."""
61+
from tensorflow.contrib import summary as contrib_summary # pylint: disable=g-import-not-at-top
6162

6263
start = time.time()
6364
for (batch, (images, labels)) in enumerate(dataset):
64-
with tf.contrib.summary.record_summaries_every_n_global_steps(
65+
with contrib_summary.record_summaries_every_n_global_steps(
6566
10, global_step=step_counter):
6667
# Record the operations used to compute the loss given the input,
6768
# so that the gradient of the loss with respect to the variables
6869
# can be computed.
6970
with tf.GradientTape() as tape:
7071
logits = model(images, training=True)
7172
loss_value = loss(logits, labels)
72-
tf.contrib.summary.scalar('loss', loss_value)
73-
tf.contrib.summary.scalar('accuracy', compute_accuracy(logits, labels))
73+
contrib_summary.scalar('loss', loss_value)
74+
contrib_summary.scalar('accuracy',
75+
compute_accuracy(logits, labels))
7476
grads = tape.gradient(loss_value, model.variables)
7577
optimizer.apply_gradients(
7678
zip(grads, model.variables), global_step=step_counter)
@@ -82,6 +84,7 @@ def train(model, optimizer, dataset, step_counter, log_interval=None):
8284

8385
def test(model, dataset):
8486
"""Perform an evaluation of `model` on the examples from `dataset`."""
87+
from tensorflow.contrib import summary as contrib_summary # pylint: disable=g-import-not-at-top
8588
avg_loss = tf.keras.metrics.Mean('loss', dtype=tf.float32)
8689
accuracy = tf.keras.metrics.Accuracy('accuracy', dtype=tf.float32)
8790

@@ -93,9 +96,9 @@ def test(model, dataset):
9396
tf.cast(labels, tf.int64))
9497
print('Test set: Average loss: %.4f, Accuracy: %4f%%\n' %
9598
(avg_loss.result(), 100 * accuracy.result()))
96-
with tf.contrib.summary.always_record_summaries():
97-
tf.contrib.summary.scalar('loss', avg_loss.result())
98-
tf.contrib.summary.scalar('accuracy', accuracy.result())
99+
with contrib_summary.always_record_summaries():
100+
contrib_summary.scalar('loss', avg_loss.result())
101+
contrib_summary.scalar('accuracy', accuracy.result())
99102

100103

101104
def run_mnist_eager(flags_obj):
@@ -137,9 +140,9 @@ def run_mnist_eager(flags_obj):
137140
else:
138141
train_dir = None
139142
test_dir = None
140-
summary_writer = tf.contrib.summary.create_file_writer(
143+
summary_writer = tf.compat.v2.summary.create_file_writer(
141144
train_dir, flush_millis=10000)
142-
test_summary_writer = tf.contrib.summary.create_file_writer(
145+
test_summary_writer = tf.compat.v2.summary.create_file_writer(
143146
test_dir, flush_millis=10000, name='test')
144147

145148
# Create and restore checkpoint (if one exists on the path)

official/r1/mnist/mnist_tpu.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def model_fn(features, labels, mode, params):
9898
'class_ids': tf.argmax(logits, axis=1),
9999
'probabilities': tf.nn.softmax(logits),
100100
}
101-
return tf.contrib.tpu.TPUEstimatorSpec(mode, predictions=predictions)
101+
return tf.compat.v1.estimator.tpu.TPUEstimatorSpec(mode, predictions=predictions)
102102

103103
logits = model(image, training=(mode == tf.estimator.ModeKeys.TRAIN))
104104
loss = tf.losses.sparse_softmax_cross_entropy(labels=labels, logits=logits)
@@ -111,14 +111,14 @@ def model_fn(features, labels, mode, params):
111111
decay_rate=0.96)
112112
optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)
113113
if FLAGS.use_tpu:
114-
optimizer = tf.contrib.tpu.CrossShardOptimizer(optimizer)
115-
return tf.contrib.tpu.TPUEstimatorSpec(
114+
optimizer = tf.compat.v1.tpu.CrossShardOptimizer(optimizer)
115+
return tf.compat.v1.estimator.tpu.TPUEstimatorSpec(
116116
mode=mode,
117117
loss=loss,
118118
train_op=optimizer.minimize(loss, tf.train.get_global_step()))
119119

120120
if mode == tf.estimator.ModeKeys.EVAL:
121-
return tf.contrib.tpu.TPUEstimatorSpec(
121+
return tf.compat.v1.estimator.tpu.TPUEstimatorSpec(
122122
mode=mode, loss=loss, eval_metrics=(metric_fn, [labels, logits]))
123123

124124

@@ -128,7 +128,7 @@ def train_input_fn(params):
128128
data_dir = params["data_dir"]
129129
# Retrieves the batch size for the current shard. The # of shards is
130130
# computed according to the input pipeline deployment. See
131-
# `tf.contrib.tpu.RunConfig` for details.
131+
# `tf.compat.v1.estimator.tpu.RunConfig` for details.
132132
ds = dataset.train(data_dir).cache().repeat().shuffle(
133133
buffer_size=50000).batch(batch_size, drop_remainder=True)
134134
return ds
@@ -153,21 +153,22 @@ def main(argv):
153153
del argv # Unused.
154154
tf.logging.set_verbosity(tf.logging.INFO)
155155

156-
tpu_cluster_resolver = tf.contrib.cluster_resolver.TPUClusterResolver(
156+
tpu_cluster_resolver = tf.distribute.cluster_resolver.TPUClusterResolver(
157157
FLAGS.tpu,
158158
zone=FLAGS.tpu_zone,
159159
project=FLAGS.gcp_project
160160
)
161161

162-
run_config = tf.contrib.tpu.RunConfig(
162+
run_config = tf.compat.v1.estimator.tpu.RunConfig(
163163
cluster=tpu_cluster_resolver,
164164
model_dir=FLAGS.model_dir,
165165
session_config=tf.ConfigProto(
166166
allow_soft_placement=True, log_device_placement=True),
167-
tpu_config=tf.contrib.tpu.TPUConfig(FLAGS.iterations, FLAGS.num_shards),
167+
tpu_config=tf.compat.v1.estimator.tpu.TPUConfig(
168+
FLAGS.iterations, FLAGS.num_shards),
168169
)
169170

170-
estimator = tf.contrib.tpu.TPUEstimator(
171+
estimator = tf.compat.v1.estimator.tpu.TPUEstimator(
171172
model_fn=model_fn,
172173
use_tpu=FLAGS.use_tpu,
173174
train_batch_size=FLAGS.batch_size,

official/r1/resnet/resnet_run_loop.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,8 @@ def exclude_batch_norm(name):
445445
tf.compat.v1.summary.scalar('learning_rate', learning_rate)
446446

447447
if flags.FLAGS.enable_lars:
448-
optimizer = tf.contrib.opt.LARSOptimizer(
448+
from tensorflow.contrib import opt as contrib_opt # pylint: disable=g-import-not-at-top
449+
optimizer = contrib_opt.LARSOptimizer(
449450
learning_rate,
450451
momentum=momentum,
451452
weight_decay=weight_decay,

official/r1/transformer/transformer_main.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,14 +177,15 @@ def get_train_op_and_metrics(loss, params):
177177

178178
# Create optimizer. Use LazyAdamOptimizer from TF contrib, which is faster
179179
# than the TF core Adam optimizer.
180-
optimizer = tf.contrib.opt.LazyAdamOptimizer(
180+
from tensorflow.contrib import opt as contrib_opt # pylint: disable=g-import-not-at-top
181+
optimizer = contrib_opt.LazyAdamOptimizer(
181182
learning_rate,
182183
beta1=params["optimizer_adam_beta1"],
183184
beta2=params["optimizer_adam_beta2"],
184185
epsilon=params["optimizer_adam_epsilon"])
185186

186187
if params["use_tpu"] and params["tpu"] != tpu_util.LOCAL:
187-
optimizer = tf.contrib.tpu.CrossShardOptimizer(optimizer)
188+
optimizer = tf.compat.v1.tpu.CrossShardOptimizer(optimizer)
188189

189190
# Uses automatic mixed precision FP16 training if on GPU.
190191
if params["dtype"] == "fp16":
@@ -533,7 +534,7 @@ def construct_estimator(flags_obj, params, schedule_manager):
533534
model_fn=model_fn, model_dir=flags_obj.model_dir, params=params,
534535
config=tf.estimator.RunConfig(train_distribute=distribution_strategy))
535536

536-
tpu_cluster_resolver = tf.contrib.cluster_resolver.TPUClusterResolver(
537+
tpu_cluster_resolver = tf.compat.v1.cluster_resolver.TPUClusterResolver(
537538
tpu=flags_obj.tpu,
538539
zone=flags_obj.tpu_zone,
539540
project=flags_obj.tpu_gcp_project

official/r1/utils/tpu.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ def host_call_fn(global_step, *args):
5858
List of summary ops to run on the CPU host.
5959
"""
6060
step = global_step[0]
61-
with tf.contrib.summary.create_file_writer(
61+
with tf.compat.v1.summary.create_file_writer(
6262
logdir=model_dir, filename_suffix=".host_call").as_default():
63-
with tf.contrib.summary.always_record_summaries():
63+
with tf.compat.v1.summary.always_record_summaries():
6464
for i, name in enumerate(metric_names):
65-
tf.contrib.summary.scalar(prefix + name, args[i][0], step=step)
65+
tf.compat.v1.summary.scalar(prefix + name, args[i][0], step=step)
6666

67-
return tf.contrib.summary.all_summary_ops()
67+
return tf.compat.v1.summary.all_summary_ops()
6868

6969
# To log the current learning rate, and gradient norm for Tensorboard, the
7070
# summary op needs to be run on the host CPU via host_call. host_call

0 commit comments

Comments
 (0)