Python tensorflow.compat.v1.float32() Examples
The following are 30
code examples of tensorflow.compat.v1.float32().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
tensorflow.compat.v1
, or try the search function
.
Example #1
Source File: convnet_builder.py From benchmarks with Apache License 2.0 | 6 votes |
def __init__(self, input_op, input_nchan, phase_train, use_tf_layers, data_format='NCHW', dtype=tf.float32, variable_dtype=tf.float32): self.top_layer = input_op self.top_size = input_nchan self.phase_train = phase_train self.use_tf_layers = use_tf_layers self.data_format = data_format self.dtype = dtype self.variable_dtype = variable_dtype self.counts = defaultdict(lambda: 0) self.use_batch_norm = False self.batch_norm_config = {} # 'decay': 0.997, 'scale': True} self.channel_pos = ('channels_last' if data_format == 'NHWC' else 'channels_first') self.aux_top_layer = None self.aux_top_size = 0
Example #2
Source File: t2t_model.py From tensor2tensor with Apache License 2.0 | 6 votes |
def _custom_getter(self): if self.hparams.weight_dtype == "bfloat16": if self.hparams.optimizer != "Adafactor": raise NotImplementedError( "weight_dtype=bfloat16 only implemented with Adafactor optimizer") activation_dtype = tf.float32 if self.hparams.activation_dtype == "bfloat16": activation_dtype = tf.bfloat16 return quantization.EighthPowerEncoding().custom_getter( activation_dtype=activation_dtype) elif self.hparams.activation_dtype == "bfloat16": return quantization.bfloat16_activations_var_getter elif mixed_precision_is_enabled(hparams=self.hparams): return quantization.float16_activations_var_getter else: return None
Example #3
Source File: expert_utils.py From tensor2tensor with Apache License 2.0 | 6 votes |
def dispatch(self, inp): """Create one input Tensor for each expert. Args: inp: a list of length num_datashards `Tensor`s with shapes `[batch_size[d], <extra_input_dims>]`. Returns: a list of `num_experts` `Tensor`s with shapes `[num_examples[i], <extra_input_dims>]`. """ dispatched = self._dp(lambda a, b: a.dispatch(b), self._dispatchers, inp) ret = self._ep(tf.concat, transpose_list_of_lists(dispatched), 0) if ret[0].dtype == tf.float32: # see comments on common_layers.convert_gradient_to_tensor ret = self._ep(common_layers.convert_gradient_to_tensor, ret) return ret
Example #4
Source File: variable_mgr_util_test.py From benchmarks with Apache License 2.0 | 6 votes |
def testAppendGradientsWithLossScaleWithoutNan(self): v = tf.Variable(0) training_ops = [] get_apply_gradients_ops_func = lambda: [tf.assign(v, v + 1)] loss_scale_params = variable_mgr_util.AutoLossScaleParams( enable_auto_loss_scale=True, loss_scale=tf.Variable(4, dtype=tf.float32), loss_scale_normal_steps=tf.Variable(10), inc_loss_scale_every_n=10, is_chief=True) variable_mgr_util.append_gradients_with_loss_scale( training_ops, get_apply_gradients_ops_func, loss_scale_params, grad_has_inf_nan=tf.constant(False)) with self.test_session() as sess: sess.run(tf.global_variables_initializer()) sess.run(training_ops) self.assertEqual(sess.run(v), 1) self.assertEqual(sess.run(loss_scale_params.loss_scale), 8) self.assertEqual(sess.run(loss_scale_params.loss_scale_normal_steps), 0)
Example #5
Source File: model_tf1.py From machine-learning-for-programming-samples with MIT License | 6 votes |
def compute_logits(self, token_ids: tf.Tensor) -> tf.Tensor: """ Implements a language model, where each output is conditional on the current input and inputs processed so far. Args: token_ids: int32 tensor of shape [B, T], storing integer IDs of tokens. Returns: tf.float32 tensor of shape [B, T, V], storing the distribution over output symbols for each timestep for each batch element. """ # TODO 5# 1) Embed tokens # TODO 5# 2) Run RNN on embedded tokens # TODO 5# 3) Project RNN outputs onto the vocabulary to obtain logits. return rnn_output_logits
Example #6
Source File: beam_search.py From tensor2tensor with Apache License 2.0 | 6 votes |
def top_k_with_unique(inputs, k): """Finds the values and indices of the k largests entries. Instead of doing sort like tf.nn.top_k, this function finds the max value k times. The running time is proportional to k, which is be faster when k is small. The current implementation supports only inputs of rank 2. In addition, iota is used to replace the lower bits of each element, this makes the selection more stable when there are equal elements. The overhead is that output values are approximated. Args: inputs: A tensor with rank of 2. [batch_size, original_size]. k: An integer, number of top elements to select. Returns: top_values: A tensor, the k largest elements in sorted order. [batch_size, k]. indices: A tensor, indices of the top_values. [batch_size, k]. """ unique_inputs = _create_make_unique(tf.cast(inputs, tf.float32)) top_values, indices = _create_topk_unique(unique_inputs, k) top_values = tf.cast(top_values, inputs.dtype) return top_values, indices
Example #7
Source File: ppo.py From tensor2tensor with Apache License 2.0 | 6 votes |
def calculate_generalized_advantage_estimator( reward, value, done, gae_gamma, gae_lambda): # pylint: disable=g-doc-args """Generalized advantage estimator. Returns: GAE estimator. It will be one element shorter than the input; this is because to compute GAE for [0, ..., N-1] one needs V for [1, ..., N]. """ # pylint: enable=g-doc-args next_value = value[1:, :] next_not_done = 1 - tf.cast(done[1:, :], tf.float32) delta = (reward[:-1, :] + gae_gamma * next_value * next_not_done - value[:-1, :]) return_ = tf.reverse(tf.scan( lambda agg, cur: cur[0] + cur[1] * gae_gamma * gae_lambda * agg, [tf.reverse(delta, [0]), tf.reverse(next_not_done, [0])], tf.zeros_like(delta[0, :]), parallel_iterations=1), [0]) return tf.check_numerics(return_, "return")
Example #8
Source File: rouge_test.py From tensor2tensor with Apache License 2.0 | 6 votes |
def testRougeLMetricE2E(self): vocab_size = 4 batch_size = 12 seq_length = 12 predictions = tf.one_hot( np.random.randint(vocab_size, size=(batch_size, seq_length, 1, 1)), depth=4, dtype=tf.float32) targets = np.random.randint(4, size=(12, 12, 1, 1)) with self.test_session() as session: scores, _ = rouge.rouge_l_fscore( predictions, tf.constant(targets, dtype=tf.int32)) a = tf.reduce_mean(scores) session.run(tf.global_variables_initializer()) session.run(a)
Example #9
Source File: bleu_hook.py From tensor2tensor with Apache License 2.0 | 6 votes |
def bleu_score(predictions, labels, **unused_kwargs): """BLEU score computation between labels and predictions. An approximate BLEU scoring method since we do not glue word pieces or decode the ids and tokenize the output. By default, we use ngram order of 4 and use brevity penalty. Also, this does not have beam search. Args: predictions: tensor, model predictions labels: tensor, gold output. Returns: bleu: int, approx bleu score """ outputs = tf.to_int32(tf.argmax(predictions, axis=-1)) # Convert the outputs and labels to a [batch_size, input_length] tensor. outputs = tf.squeeze(outputs, axis=[-1, -2]) labels = tf.squeeze(labels, axis=[-1, -2]) bleu = tf.py_func(compute_bleu, (labels, outputs), tf.float32) return bleu, tf.constant(1.0)
Example #10
Source File: ppo_learner.py From tensor2tensor with Apache License 2.0 | 6 votes |
def _rollout_metadata(batch_env, distributional_size=1): """Metadata for rollouts.""" batch_env_shape = batch_env.observ.get_shape().as_list() batch_size = [batch_env_shape[0]] value_size = batch_size if distributional_size > 1: value_size = batch_size + [distributional_size] shapes_types_names = [ # TODO(piotrmilos): possibly retrieve the observation type for batch_env (batch_size + batch_env_shape[1:], batch_env.observ_dtype, "observation"), (batch_size, tf.float32, "reward"), (batch_size, tf.bool, "done"), (batch_size + list(batch_env.action_shape), batch_env.action_dtype, "action"), (batch_size, tf.float32, "pdf"), (value_size, tf.float32, "value_function"), ] return shapes_types_names
Example #11
Source File: variable_mgr_util_test.py From benchmarks with Apache License 2.0 | 6 votes |
def testAppendGradientsWithLossScaleWithtNan(self): v = tf.Variable(0) training_ops = [] get_apply_gradients_ops_func = lambda: [tf.assign(v, v + 1)] loss_scale_params = variable_mgr_util.AutoLossScaleParams( enable_auto_loss_scale=True, loss_scale=tf.Variable(4, dtype=tf.float32), loss_scale_normal_steps=tf.Variable(10), inc_loss_scale_every_n=10, is_chief=True) variable_mgr_util.append_gradients_with_loss_scale( training_ops, get_apply_gradients_ops_func, loss_scale_params, grad_has_inf_nan=tf.constant(True)) with self.test_session() as sess: sess.run(tf.global_variables_initializer()) sess.run(training_ops) self.assertEqual(sess.run(v), 0) # Skip updating for v. # halve loss_scale and reset local_scale_normal_steps. self.assertEqual(sess.run(loss_scale_params.loss_scale), 2) self.assertEqual(sess.run(loss_scale_params.loss_scale_normal_steps), 0)
Example #12
Source File: dropout.py From lamb with Apache License 2.0 | 6 votes |
def _ensure_keep_mask(self, x): if self._keep_mask is None or not self._share_mask: shape = tf.shape(x) k = shape[1] # To make this class a drop-in replacement for bernoulli dropout we # paramaterize it with keep_prob. Set alpha of the dirichlet so that the # variance is equal to the variance of the bernoulli with p=keep_prob # divided by keep_prob. # Now the variance of the dirichlet with k equal alphas is # (k-1)/(k^2(k*alpha+1). Solve that for alpha. kf = tf.cast(k, tf.float32) alpha = self._keep_prob * (kf - 1.0) / ((1-self._keep_prob)*kf) - 1.0/kf dist = tfp.distributions.Dirichlet(tf.ones(shape=k) * alpha) assert (dist.reparameterization_type == tfp.distributions.FULLY_REPARAMETERIZED) # The E[dir(alpha)] = 1/k for all elements, but we want the expectation to # be keep_prob, hence the multiplication. self._keep_mask = kf * dist.sample(shape[0]) self._keep_mask.set_shape(x.get_shape()) return self._keep_mask
Example #13
Source File: official_ncf_model.py From benchmarks with Apache License 2.0 | 6 votes |
def _fp16_variable_creator(next_creator, **kwargs): """Variable creator to create variables in fp32 and cast them to fp16.""" dtype = kwargs.get('dtype', None) initial_value = kwargs.get('initial_value', None) if dtype is None: if initial_value is not None and not callable(initial_value): dtype = initial_value.dtype if dtype == tf.float16: if callable(initial_value): new_initial_value = lambda: tf.cast(initial_value(), tf.float32) else: new_initial_value = tf.cast(initial_value, tf.float32) kwargs['dtype'] = tf.float32 kwargs['initial_value'] = new_initial_value var = next_creator(**kwargs) return tf.cast(var, dtype=tf.float16) else: return next_creator(**kwargs)
Example #14
Source File: metrics_test.py From tensor2tensor with Apache License 2.0 | 6 votes |
def testNegativeLogPerplexityMaskedAssert(self): predictions = np.random.randint(4, size=(12, 12, 12, 1)) targets = np.random.randint(4, size=(12, 12, 12, 1)) features = {} with self.assertRaisesRegexp( ValueError, 'masked_neg_log_perplexity requires targets_mask feature'): with self.test_session() as session: scores, _ = metrics.padded_neg_log_perplexity_with_masking( tf.one_hot(predictions, depth=4, dtype=tf.float32), tf.constant(targets, dtype=tf.int32), features) a = tf.reduce_mean(scores) session.run(tf.global_variables_initializer()) _ = session.run(a)
Example #15
Source File: expert_utils.py From tensor2tensor with Apache License 2.0 | 6 votes |
def __init__(self, pad_mask): """Compute and store the location of the padding. Args: pad_mask (tf.Tensor): Reference padding tensor of shape [batch_size,length] or [dim_origin] (dim_origin=batch_size*length) containing non-zeros positive values to indicate padding location. """ self.nonpad_ids = None self.dim_origin = None with tf.name_scope("pad_reduce/get_ids"): pad_mask = tf.reshape(pad_mask, [-1]) # Flatten the batch # nonpad_ids contains coordinates of zeros rows (as pad_mask is # float32, checking zero equality is done with |x| < epsilon, with # epsilon=1e-9 as standard, here pad_mask only contains positive values # so tf.abs would be redundant) self.nonpad_ids = tf.to_int32(tf.where(pad_mask < 1e-9)) self.dim_origin = tf.shape(pad_mask)[:1]
Example #16
Source File: metrics_test.py From tensor2tensor with Apache License 2.0 | 6 votes |
def testAccuracyTopKMetric(self): predictions = np.random.randint(1, 5, size=(12, 12, 12, 1)) targets = np.random.randint(1, 5, size=(12, 12, 12, 1)) expected = np.mean((predictions == targets).astype(float)) with self.test_session() as session: predicted = tf.one_hot(predictions, depth=5, dtype=tf.float32) scores1, _ = metrics.padded_accuracy_topk( predicted, tf.constant(targets, dtype=tf.int32), k=1) scores2, _ = metrics.padded_accuracy_topk( predicted, tf.constant(targets, dtype=tf.int32), k=7) a1 = tf.reduce_mean(scores1) a2 = tf.reduce_mean(scores2) session.run(tf.global_variables_initializer()) actual1, actual2 = session.run([a1, a2]) self.assertAlmostEqual(actual1, expected) self.assertAlmostEqual(actual2, 1.0)
Example #17
Source File: benchmark_cnn_test.py From benchmarks with Apache License 2.0 | 6 votes |
def _test_preprocessing_traing(self, image_buf, image_color, output_height, output_width, bbox, batch_position, resize_method, distortions, summary_verbosity, fuse_decode_and_crop): new_image = preprocessing.train_image( image_buf, output_height, output_width, bbox, batch_position, resize_method, distortions, summary_verbosity=summary_verbosity, fuse_decode_and_crop=fuse_decode_and_crop) self.assertEqual(new_image.shape, [output_height, output_width, 3]) with self.test_session(use_gpu=True) as sess: new_image_value = sess.run(new_image) self.assertAllClose( new_image_value, np.full( [output_height, output_width, 3], image_color, dtype=np.float32), atol=50., rtol=0.)
Example #18
Source File: benchmark_cnn_test.py From benchmarks with Apache License 2.0 | 6 votes |
def testLowAccuracy(self): params = test_util.get_params('testLowAccuracy')._replace( print_training_accuracy=True, batch_size=5, num_batches=10) # We force low accuracy by having each batch containing 10 identical images, # each with a different label. This guarantees a top-1 accuracy of exactly # 0.1 and a top-5 accuracy of exactly 0.5. images = np.zeros((10, 227, 227, 3), dtype=np.float32) labels = np.arange(10, dtype=np.int32) logs = self._run_benchmark_cnn_with_fake_images(params, images, labels) training_outputs = test_util.get_training_outputs_from_logs( logs, params.print_training_accuracy) last_output = training_outputs[-1] # TODO(reedwm): These should be assertEqual but for some reason, # occasionally the accuracies are lower (Running this test 500 times, these # asserts failed twice). Investigate this problem. self.assertLessEqual(last_output.top_1_accuracy, 0.1) self.assertLessEqual(last_output.top_5_accuracy, 0.5)
Example #19
Source File: benchmark_cnn_test.py From benchmarks with Apache License 2.0 | 6 votes |
def _run_benchmark_cnn_with_black_and_white_images(self, params): """Runs BenchmarkCNN with black and white images. A BenchmarkCNN is created and run with black and white images as input. Half the images are black (i.e., filled with 0s) and half are white (i.e., filled with 255s). Args: params: Params for BenchmarkCNN. Returns: A list of lines from the output of BenchmarkCNN. """ # TODO(reedwm): Instead of generating images here, use black and white # tfrecords by calling test_util.create_black_and_white_images(). effective_batch_size = params.batch_size * params.num_gpus half_batch_size = effective_batch_size // 2 images = np.zeros((effective_batch_size, 227, 227, 3), dtype=np.float32) images[half_batch_size:, :, :, :] = 255 labels = np.array([0] * half_batch_size + [1] * half_batch_size, dtype=np.int32) return self._run_benchmark_cnn_with_fake_images(params, images, labels)
Example #20
Source File: rouge.py From tensor2tensor with Apache License 2.0 | 6 votes |
def rouge_2_fscore(predictions, labels, **unused_kwargs): """ROUGE-2 F1 score computation between labels and predictions. This is an approximate ROUGE scoring method since we do not glue word pieces or decode the ids and tokenize the output. Args: predictions: tensor, model predictions labels: tensor, gold output. Returns: rouge2_fscore: approx rouge-2 f1 score. """ outputs = tf.to_int32(tf.argmax(predictions, axis=-1)) # Convert the outputs and labels to a [batch_size, input_length] tensor. outputs = tf.squeeze(outputs, axis=[-1, -2]) labels = tf.squeeze(labels, axis=[-1, -2]) rouge_2_f_score = tf.py_func(rouge_n, (outputs, labels), tf.float32) return rouge_2_f_score, tf.constant(1.0)
Example #21
Source File: metrics_test.py From tensor2tensor with Apache License 2.0 | 6 votes |
def testSequenceEditDistanceMetric(self): predictions = np.array([[3, 4, 5, 1, 0, 0], [2, 1, 3, 4, 0, 0], [2, 1, 3, 4, 0, 0]]) # Targets are just a bit different: # - first sequence has a different prediction # - second sequence has a different prediction and one extra step # - third sequence is identical targets = np.array([[5, 4, 5, 1, 0, 0], [2, 5, 3, 4, 1, 0], [2, 1, 3, 4, 0, 0]]) # Reshape to match expected input format by metric fns. predictions = np.reshape(predictions, [3, 6, 1, 1]) targets = np.reshape(targets, [3, 6, 1, 1]) with self.test_session() as session: scores, weight = metrics.sequence_edit_distance( tf.one_hot(predictions, depth=6, dtype=tf.float32), tf.constant(targets, dtype=tf.int32)) session.run(tf.global_variables_initializer()) actual_scores, actual_weight = session.run([scores, weight]) self.assertAlmostEqual(actual_scores, 3.0 / 13) self.assertEqual(actual_weight, 13)
Example #22
Source File: preprocessing.py From benchmarks with Apache License 2.0 | 6 votes |
def decode_jpeg(image_buffer, scope=None): # , dtype=tf.float32): """Decode a JPEG string into one 3-D float image Tensor. Args: image_buffer: scalar string Tensor. scope: Optional scope for op_scope. Returns: 3-D float Tensor with values ranging from [0, 1). """ # with tf.op_scope([image_buffer], scope, 'decode_jpeg'): # with tf.name_scope(scope, 'decode_jpeg', [image_buffer]): with tf.name_scope(scope or 'decode_jpeg'): # Decode the string as an RGB JPEG. # Note that the resulting image contains an unknown height and width # that is set dynamically by decode_jpeg. In other words, the height # and width of image is unknown at compile-time. image = tf.image.decode_jpeg(image_buffer, channels=3, fancy_upscaling=False, dct_method='INTEGER_FAST') # image = tf.Print(image, [tf.shape(image)], 'Image shape: ') return image
Example #23
Source File: benchmark_cnn.py From benchmarks with Apache License 2.0 | 6 votes |
def _maybe_initialize_fp16(self): """Initialize fp16 settings.""" if self.params.use_fp16 and not self._doing_eval: init_loss_scale_val = float(self.params.fp16_loss_scale or self.model.get_fp16_loss_scale()) self.loss_scale = None self.loss_scale_normal_steps = None if self.enable_auto_loss_scale or init_loss_scale_val != 1: self.loss_scale = tf.get_variable( name='loss_scale', initializer=init_loss_scale_val, dtype=tf.float32, trainable=False) if self.enable_auto_loss_scale: self.loss_scale_normal_steps = tf.get_variable( name='loss_scale_normal_steps', initializer=0, trainable=False)
Example #24
Source File: official_resnet_model.py From benchmarks with Apache License 2.0 | 6 votes |
def build_network(self, images, phase_train=True, nclass=1001, data_type=tf.float32): # pylint: disable=g-import-not-at-top try: from official.resnet.r1.imagenet_main import ImagenetModel except ImportError: tf.logging.fatal('Please include tensorflow/models to the PYTHONPATH.') raise images = tf.cast(images, data_type) model_class = ImagenetModel(resnet_size=self.resnet_size, resnet_version=self.version, # The official model dtype seems to be ignored, # as the dtype it uses is the dtype of the input # images. Doesn't hurt to set it though. dtype=data_type) logits = model_class(images, phase_train) logits = tf.cast(logits, tf.float32) return model_lib.BuildNetworkResult(logits=logits, extra_info=None)
Example #25
Source File: metrics_test.py From tensor2tensor with Apache License 2.0 | 6 votes |
def testMultilabelMatch3(self): predictions = np.random.randint(1, 5, size=(100, 1, 1, 1)) targets = np.random.randint(1, 5, size=(100, 10, 1, 1)) weights = np.random.randint(0, 2, size=(100, 1, 1, 1)) targets *= weights predictions_repeat = np.repeat(predictions, 10, axis=1) expected = (predictions_repeat == targets).astype(float) expected = np.sum(expected, axis=(1, 2, 3)) expected = np.minimum(expected / 3.0, 1.) expected = np.sum(expected * weights[:, 0, 0, 0]) / weights.shape[0] with self.test_session() as session: scores, weights_ = metrics.multilabel_accuracy_match3( tf.one_hot(predictions, depth=5, dtype=tf.float32), tf.constant(targets, dtype=tf.int32)) a, a_op = tf.metrics.mean(scores, weights_) session.run(tf.local_variables_initializer()) session.run(tf.global_variables_initializer()) _ = session.run(a_op) actual = session.run(a) self.assertAlmostEqual(actual, expected, places=6)
Example #26
Source File: metrics_test.py From tensor2tensor with Apache License 2.0 | 5 votes |
def testNegativeLogPerplexityMasked(self): predictions = np.random.randint(4, size=(12, 12, 12, 1)) targets = np.random.randint(4, size=(12, 12, 12, 1)) features = { 'targets_mask': tf.to_float(tf.ones([12, 12])) } with self.test_session() as session: scores, _ = metrics.padded_neg_log_perplexity_with_masking( tf.one_hot(predictions, depth=4, dtype=tf.float32), tf.constant(targets, dtype=tf.int32), features) a = tf.reduce_mean(scores) session.run(tf.global_variables_initializer()) actual = session.run(a) self.assertEqual(actual.shape, ())
Example #27
Source File: rouge.py From tensor2tensor with Apache License 2.0 | 5 votes |
def rouge_l_sentence_level(eval_sentences, ref_sentences): """Computes ROUGE-L (sentence level) of two collections of sentences. Source: https://www.microsoft.com/en-us/research/publication/ rouge-a-package-for-automatic-evaluation-of-summaries/ Calculated according to: R_lcs = LCS(X,Y)/m P_lcs = LCS(X,Y)/n F_lcs = ((1 + beta^2)*R_lcs*P_lcs) / (R_lcs + (beta^2) * P_lcs) where: X = reference summary Y = Candidate summary m = length of reference summary n = length of candidate summary Args: eval_sentences: The sentences that have been picked by the summarizer ref_sentences: The sentences from the reference set Returns: A float: F_lcs """ f1_scores = [] for eval_sentence, ref_sentence in zip(eval_sentences, ref_sentences): m = len(ref_sentence) n = len(eval_sentence) lcs = _len_lcs(eval_sentence, ref_sentence) f1_scores.append(_f_lcs(lcs, m, n)) return np.mean(f1_scores, dtype=np.float32)
Example #28
Source File: metrics.py From tensor2tensor with Apache License 2.0 | 5 votes |
def multilabel_accuracy_matchk(predictions, labels, k, weights_fn=common_layers.weights_nonzero): """Used to evaluate the VQA accuracy. Let n be the times that predictions appear in labels, then final score is min(n/k, 1). Refer to https://arxiv.org/pdf/1505.00468.pdf. Args: predictions: A tensor with shape [batch_size, 1, 1, 1, vocab_size]. labels: A tensor with shape [batch_size, length, 1, 1]. k: A tensor constant. weights_fn: weight function. Returns: scores: min(n/k, 1). weights: returns all ones. """ predictions = tf.to_int32(tf.argmax(predictions, axis=-1)) scores = tf.to_float(tf.equal(predictions, labels)) # those label == 0 do not count weights = weights_fn(labels) scores *= weights scores = tf.reduce_sum(scores, axis=[1, 2, 3]) scores = tf.minimum(scores / tf.to_float(k), 1) # every sample count weights = tf.ones(tf.shape(scores), dtype=tf.float32) return scores, weights
Example #29
Source File: py_func_batch_env.py From tensor2tensor with Apache License 2.0 | 5 votes |
def simulate(self, action): """Step the batch of environments. The results of the step can be accessed from the variables defined below. Args: action: Tensor holding the batch of actions to apply. Returns: Operation. """ with tf.name_scope("environment/simulate"): if action.dtype in (tf.float16, tf.float32, tf.float64): action = tf.check_numerics(action, "action") def step(action): step_response = self._batch_env.step(action) # Current env doesn't return `info`, but EnvProblem does. # TODO(afrozm): The proper way to do this is to make T2TGymEnv return # an empty info return value. if len(step_response) == 3: (observ, reward, done) = step_response else: (observ, reward, done, _) = step_response return (observ, reward.astype(np.float32), done) observ, reward, done = tf.py_func( step, [action], [self.observ_dtype, tf.float32, tf.bool], name="step") reward = tf.check_numerics(reward, "reward") reward.set_shape((len(self),)) done.set_shape((len(self),)) with tf.control_dependencies([self._observ.assign(observ)]): return tf.identity(reward), tf.identity(done)
Example #30
Source File: rouge.py From tensor2tensor with Apache License 2.0 | 5 votes |
def rouge_n(eval_sentences, ref_sentences, n=2): """Computes ROUGE-N f1 score of two text collections of sentences. Source: https://www.microsoft.com/en-us/research/publication/ rouge-a-package-for-automatic-evaluation-of-summaries/ Args: eval_sentences: The sentences that have been picked by the summarizer ref_sentences: The sentences from the reference set n: Size of ngram. Defaults to 2. Returns: f1 score for ROUGE-N """ f1_scores = [] for eval_sentence, ref_sentence in zip(eval_sentences, ref_sentences): eval_ngrams = _get_ngrams(n, eval_sentence) ref_ngrams = _get_ngrams(n, ref_sentence) ref_count = len(ref_ngrams) eval_count = len(eval_ngrams) # Gets the overlapping ngrams between evaluated and reference overlapping_ngrams = eval_ngrams.intersection(ref_ngrams) overlapping_count = len(overlapping_ngrams) # Handle edge case. This isn't mathematically correct, but it's good enough if eval_count == 0: precision = 0.0 else: precision = overlapping_count / eval_count if ref_count == 0: recall = 0.0 else: recall = overlapping_count / ref_count f1_scores.append(2.0 * ((precision * recall) / (precision + recall + 1e-8))) # return overlapping_count / reference_count return np.mean(f1_scores, dtype=np.float32)