33
33
# pylint: enable=g-bad-import-order
34
34
35
35
from official .r1 .utils import export
36
- from tensorflow .contrib import cluster_resolver as contrib_cluster_resolver
37
- from tensorflow .contrib import opt as contrib_opt
38
- from tensorflow .contrib import tpu as contrib_tpu
39
36
from official .r1 .utils import tpu as tpu_util
40
37
from official .transformer import compute_bleu
41
38
from official .transformer import translate
@@ -118,10 +115,8 @@ def model_fn(features, labels, mode, params):
118
115
metric_fn = lambda logits , labels : (
119
116
metrics .get_eval_metrics (logits , labels , params = params ))
120
117
eval_metrics = (metric_fn , [logits , labels ])
121
- return contrib_tpu .TPUEstimatorSpec (
122
- mode = mode ,
123
- loss = loss ,
124
- predictions = {"predictions" : logits },
118
+ return tf .contrib .tpu .TPUEstimatorSpec (
119
+ mode = mode , loss = loss , predictions = {"predictions" : logits },
125
120
eval_metrics = eval_metrics )
126
121
return tf .estimator .EstimatorSpec (
127
122
mode = mode , loss = loss , predictions = {"predictions" : logits },
@@ -133,14 +128,12 @@ def model_fn(features, labels, mode, params):
133
128
# in TensorBoard.
134
129
metric_dict ["minibatch_loss" ] = loss
135
130
if params ["use_tpu" ]:
136
- return contrib_tpu .TPUEstimatorSpec (
137
- mode = mode ,
138
- loss = loss ,
139
- train_op = train_op ,
131
+ return tf .contrib .tpu .TPUEstimatorSpec (
132
+ mode = mode , loss = loss , train_op = train_op ,
140
133
host_call = tpu_util .construct_scalar_host_call (
141
- metric_dict = metric_dict ,
142
- model_dir = params [ "model_dir" ],
143
- prefix = "training/" ) )
134
+ metric_dict = metric_dict , model_dir = params [ "model_dir" ],
135
+ prefix = "training/" )
136
+ )
144
137
record_scalars (metric_dict )
145
138
return tf .estimator .EstimatorSpec (mode = mode , loss = loss , train_op = train_op )
146
139
@@ -180,14 +173,14 @@ def get_train_op_and_metrics(loss, params):
180
173
181
174
# Create optimizer. Use LazyAdamOptimizer from TF contrib, which is faster
182
175
# than the TF core Adam optimizer.
183
- optimizer = contrib_opt .LazyAdamOptimizer (
176
+ optimizer = tf . contrib . opt .LazyAdamOptimizer (
184
177
learning_rate ,
185
178
beta1 = params ["optimizer_adam_beta1" ],
186
179
beta2 = params ["optimizer_adam_beta2" ],
187
180
epsilon = params ["optimizer_adam_epsilon" ])
188
181
189
182
if params ["use_tpu" ] and params ["tpu" ] != tpu_util .LOCAL :
190
- optimizer = contrib_tpu .CrossShardOptimizer (optimizer )
183
+ optimizer = tf . contrib . tpu .CrossShardOptimizer (optimizer )
191
184
192
185
# Uses automatic mixed precision FP16 training if on GPU.
193
186
if params ["dtype" ] == "fp16" :
@@ -535,31 +528,31 @@ def construct_estimator(flags_obj, params, schedule_manager):
535
528
model_fn = model_fn , model_dir = flags_obj .model_dir , params = params ,
536
529
config = tf .estimator .RunConfig (train_distribute = distribution_strategy ))
537
530
538
- tpu_cluster_resolver = contrib_cluster_resolver .TPUClusterResolver (
531
+ tpu_cluster_resolver = tf . contrib . cluster_resolver .TPUClusterResolver (
539
532
tpu = flags_obj .tpu ,
540
533
zone = flags_obj .tpu_zone ,
541
- project = flags_obj .tpu_gcp_project )
534
+ project = flags_obj .tpu_gcp_project
535
+ )
542
536
543
- tpu_config = contrib_tpu .TPUConfig (
537
+ tpu_config = tf . contrib . tpu .TPUConfig (
544
538
iterations_per_loop = schedule_manager .single_iteration_train_steps ,
545
539
num_shards = flags_obj .num_tpu_shards )
546
540
547
- run_config = contrib_tpu .RunConfig (
541
+ run_config = tf . contrib . tpu .RunConfig (
548
542
cluster = tpu_cluster_resolver ,
549
543
model_dir = flags_obj .model_dir ,
550
544
session_config = tf .ConfigProto (
551
545
allow_soft_placement = True , log_device_placement = True ),
552
546
tpu_config = tpu_config )
553
547
554
- return contrib_tpu .TPUEstimator (
548
+ return tf . contrib . tpu .TPUEstimator (
555
549
model_fn = model_fn ,
556
550
use_tpu = params ["use_tpu" ] and flags_obj .tpu != tpu_util .LOCAL ,
557
551
train_batch_size = schedule_manager .batch_size ,
558
552
eval_batch_size = schedule_manager .batch_size ,
559
553
params = {
560
554
# TPUEstimator needs to populate batch_size itself due to sharding.
561
- key : value for key , value in params .items () if key != "batch_size"
562
- },
555
+ key : value for key , value in params .items () if key != "batch_size" },
563
556
config = run_config )
564
557
565
558
0 commit comments