Python tensorflow.squeeze() Examples
The following are 30
code examples of tensorflow.squeeze().
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
, or try the search function
.

Example #1
Source File: vgg_preprocessing.py From DOTA_models with Apache License 2.0 | 6 votes |
def _aspect_preserving_resize(image, smallest_side): """Resize images preserving the original aspect ratio. Args: image: A 3-D image `Tensor`. smallest_side: A python integer or scalar `Tensor` indicating the size of the smallest side after resize. Returns: resized_image: A 3-D tensor containing the resized image. """ smallest_side = tf.convert_to_tensor(smallest_side, dtype=tf.int32) shape = tf.shape(image) height = shape[0] width = shape[1] new_height, new_width = _smallest_size_at_least(height, width, smallest_side) image = tf.expand_dims(image, 0) resized_image = tf.image.resize_bilinear(image, [new_height, new_width], align_corners=False) resized_image = tf.squeeze(resized_image) resized_image.set_shape([None, None, 3]) return resized_image
Example #2
Source File: image_processing.py From DOTA_models with Apache License 2.0 | 6 votes |
def eval_image(image, height, width, scope=None): """Prepare one image for evaluation. Args: image: 3-D float Tensor height: integer width: integer scope: Optional scope for name_scope. Returns: 3-D float Tensor of prepared image. """ with tf.name_scope(values=[image, height, width], name=scope, default_name='eval_image'): # Crop the central region of the image with an area containing 87.5% of # the original image. image = tf.image.central_crop(image, central_fraction=0.875) # Resize the image to the original height and width. image = tf.expand_dims(image, 0) image = tf.image.resize_bilinear(image, [height, width], align_corners=False) image = tf.squeeze(image, [0]) return image
Example #3
Source File: discriminator.py From SSGAN-Tensorflow with MIT License | 6 votes |
def __call__(self, input): with tf.variable_scope(self.name, reuse=self._reuse): if not self._reuse: print('\033[93m'+self.name+'\033[0m') _ = input num_channel = [32, 64, 128, 256, 256, 512] num_layer = np.ceil(np.log2(min(_.shape.as_list()[1:3]))).astype(np.int) for i in range(num_layer): ch = num_channel[i] if i < len(num_channel) else 512 _ = conv2d(_, ch, self._is_train, info=not self._reuse, norm=self._norm_type, name='conv{}'.format(i+1)) _ = conv2d(_, int(num_channel[i]/4), self._is_train, k=1, s=1, info=not self._reuse, norm='None', name='conv{}'.format(i+2)) _ = conv2d(_, self._num_class+1, self._is_train, k=1, s=1, info=not self._reuse, activation_fn=None, norm='None', name='conv{}'.format(i+3)) _ = tf.squeeze(_) if not self._reuse: log.info('discriminator output {}'.format(_.shape.as_list())) self._reuse = True self.var_list = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, self.name) return tf.nn.sigmoid(_), _
Example #4
Source File: density_model.py From cs294-112_hws with MIT License | 6 votes |
def get_prob(self, state): """ ### PROBLEM 3 ### YOUR CODE HERE args: state: np array (batch_size, ob_dim) TODO: likelihood: evaluate the discriminator D(x,x) on the same input prob: compute the probability density of x from the discriminator likelihood (see homework doc) """ likelihood = self.get_likelihood(state, state) # avoid divide by 0 and log(0) likelihood = np.clip(np.squeeze(likelihood), 1e-5, 1-1e-5) prob = (1 - likelihood) / likelihood return prob
Example #5
Source File: tf_atari_wrappers.py From fine-lm with MIT License | 6 votes |
def simulate(self, action): with tf.name_scope("environment/simulate"): # Do we need this? initializer = (tf.zeros(self.old_shape, dtype=tf.float32), tf.fill((len(self),), 0.0), tf.fill((len(self),), False)) def not_done_step(a, _): reward, done = self._batch_env.simulate(action) with tf.control_dependencies([reward, done]): r0 = self._batch_env.observ + 0 r1 = tf.add(a[1], reward) r2 = tf.logical_or(a[2], done) return (r0, r1, r2) simulate_ret = tf.scan(not_done_step, tf.range(self.skip), initializer=initializer, parallel_iterations=1, infer_shape=False) observations, rewards, dones = simulate_ret split_observations = tf.split(observations, self.skip, axis=0) split_observations = [tf.squeeze(o, axis=0) for o in split_observations] observation = tf.concat(split_observations, axis=-1) with tf.control_dependencies([self._observ.assign(observation)]): return tf.identity(rewards[-1, ...]), tf.identity(dones[-1, ...])
Example #6
Source File: metrics.py From fine-lm with MIT License | 6 votes |
def set_precision(predictions, labels, weights_fn=common_layers.weights_nonzero): """Precision of set predictions. Args: predictions : A Tensor of scores of shape [batch, nlabels]. labels: A Tensor of int32s giving true set elements, of shape [batch, seq_length]. weights_fn: A function to weight the elements. Returns: hits: A Tensor of shape [batch, nlabels]. weights: A Tensor of shape [batch, nlabels]. """ with tf.variable_scope("set_precision", values=[predictions, labels]): labels = tf.squeeze(labels, [2, 3]) weights = weights_fn(labels) labels = tf.one_hot(labels, predictions.shape[-1]) labels = tf.reduce_max(labels, axis=1) labels = tf.cast(labels, tf.bool) return tf.to_float(tf.equal(labels, predictions)), weights
Example #7
Source File: metrics.py From fine-lm with MIT License | 6 votes |
def set_recall(predictions, labels, weights_fn=common_layers.weights_nonzero): """Recall of set predictions. Args: predictions : A Tensor of scores of shape [batch, nlabels]. labels: A Tensor of int32s giving true set elements, of shape [batch, seq_length]. weights_fn: A function to weight the elements. Returns: hits: A Tensor of shape [batch, nlabels]. weights: A Tensor of shape [batch, nlabels]. """ with tf.variable_scope("set_recall", values=[predictions, labels]): labels = tf.squeeze(labels, [2, 3]) weights = weights_fn(labels) labels = tf.one_hot(labels, predictions.shape[-1]) labels = tf.reduce_max(labels, axis=1) labels = tf.cast(labels, tf.bool) return tf.to_float(tf.equal(labels, predictions)), weights
Example #8
Source File: rouge.py From fine-lm with MIT License | 6 votes |
def rouge_l_fscore(predictions, labels, **unused_kwargs): """ROUGE scores 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: rouge_l_fscore: approx rouge-l 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_l_f_score = tf.py_func(rouge_l_sentence_level, (outputs, labels), tf.float32) return rouge_l_f_score, tf.constant(1.0)
Example #9
Source File: rouge.py From fine-lm with MIT License | 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 #10
Source File: bleu_hook.py From fine-lm with MIT License | 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 #11
Source File: autoencoders.py From fine-lm with MIT License | 6 votes |
def decode(self, bottleneck): """Auto-decode from the bottleneck and return the result.""" # Get the shape from bottleneck and num channels. shape = common_layers.shape_list(bottleneck) try: num_channels = self.hparams.problem.num_channels except AttributeError: num_channels = 1 dummy_targets = tf.zeros(shape[:-1] + [num_channels]) # Set the bottleneck to decode. if len(shape) > 4: bottleneck = tf.squeeze(bottleneck, axis=[1]) bottleneck = 2 * bottleneck - 1 # Be -1/1 instead of 0/1. self._cur_bottleneck_tensor = bottleneck # Run decoding. res = self.infer({"targets": dummy_targets}) self._cur_bottleneck_tensor = None return res
Example #12
Source File: attention_lm.py From fine-lm with MIT License | 6 votes |
def body(self, features): # Remove dropout if not training hparams = self._hparams targets = features["targets"] targets = tf.squeeze(targets, 2) (decoder_input, decoder_self_attention_bias) = attention_lm_prepare_decoder( targets, hparams) decoder_input = tf.nn.dropout(decoder_input, 1.0 - hparams.layer_prepostprocess_dropout) decoder_output = attention_lm_decoder(decoder_input, decoder_self_attention_bias, hparams) decoder_output = tf.expand_dims(decoder_output, 2) return decoder_output
Example #13
Source File: resnet.py From fine-lm with MIT License | 6 votes |
def infer(self, features=None, decode_length=50, beam_size=1, top_beams=1, alpha=0.0, use_tpu=False): """Predict.""" del decode_length, beam_size, top_beams, alpha, use_tpu assert features is not None logits, _ = self(features) # pylint: disable=not-callable assert len(logits.get_shape()) == 5 logits = tf.squeeze(logits, [1, 2, 3]) log_probs = common_layers.log_prob_from_logits(logits) predictions, scores = common_layers.argmax_with_score(log_probs) return { "outputs": predictions, "scores": scores, }
Example #14
Source File: transformer_test.py From fine-lm with MIT License | 6 votes |
def _create_greedy_infer_model(self): """Creates model for greedy inference testing. Returns: model: A t2t model. features: An map of string to tensor. """ model, features = get_model(transformer.transformer_small()) out_logits, _ = model(features) out_logits = tf.squeeze(out_logits, axis=[2, 3]) loss = tf.nn.sparse_softmax_cross_entropy_with_logits( logits=tf.reshape(out_logits, [-1, VOCAB_SIZE]), labels=tf.reshape(features["targets"], [-1])) loss = tf.reduce_mean(loss) apply_grad = tf.train.AdamOptimizer(0.001).minimize(loss) with self.test_session(): tf.global_variables_initializer().run() for _ in range(100): apply_grad.run() model.set_mode(tf.estimator.ModeKeys.PREDICT) return model, features
Example #15
Source File: transformer_test.py From fine-lm with MIT License | 6 votes |
def testGreedyTPUSlowVsFast(self): if not tf_version_has_inplace_ops(): return decode_length = 3 model, features = self._create_greedy_infer_model() with tf.variable_scope(tf.get_variable_scope(), reuse=True): slow_result = model._slow_greedy_infer_tpu( features, decode_length)["outputs"] slow_result = tf.squeeze(slow_result, axis=[2, 3]) fast_result = model._greedy_infer( features, decode_length, use_tpu=True)["outputs"] with self.test_session(): slow_res = slow_result.eval() fast_res = fast_result.eval() self.assertEqual(fast_res.shape, (BATCH_SIZE, INPUT_LENGTH + decode_length)) self.assertAllClose(fast_res, slow_res)
Example #16
Source File: modalities.py From fine-lm with MIT License | 6 votes |
def bottom_simple(self, x, name, reuse): with tf.variable_scope(name, reuse=reuse): # Ensure the inputs are 3-D if len(x.get_shape()) == 4: x = tf.squeeze(x, axis=3) while len(x.get_shape()) < 3: x = tf.expand_dims(x, axis=-1) var = self._get_weights() x = common_layers.dropout_no_scaling( x, 1.0 - self._model_hparams.symbol_dropout) ret = common_layers.gather(var, x) if self._model_hparams.multiply_embedding_mode == "sqrt_depth": ret *= self._body_input_depth**0.5 ret *= tf.expand_dims(tf.to_float(tf.not_equal(x, 0)), -1) return ret
Example #17
Source File: modalities.py From fine-lm with MIT License | 6 votes |
def loss(self, top_out, targets): """Compute the CTC loss.""" logits = top_out with tf.name_scope("ctc_loss", values=[logits, targets]): # For CTC we assume targets are 1d, [batch, length, 1, 1] here. targets_shape = targets.get_shape().as_list() assert len(targets_shape) == 4 assert targets_shape[2] == 1 assert targets_shape[3] == 1 targets = tf.squeeze(targets, axis=[2, 3]) logits = tf.squeeze(logits, axis=[2, 3]) targets_mask = 1 - tf.to_int32(tf.equal(targets, 0)) targets_lengths = tf.reduce_sum(targets_mask, axis=1) sparse_targets = tf.keras.backend.ctc_label_dense_to_sparse( targets, targets_lengths) xent = tf.nn.ctc_loss( sparse_targets, logits, targets_lengths, time_major=False, preprocess_collapse_repeated=False, ctc_merge_repeated=False) weights = self.targets_weights_fn(targets) # pylint: disable=not-callable return tf.reduce_sum(xent), tf.reduce_sum(weights)
Example #18
Source File: modalities.py From fine-lm with MIT License | 6 votes |
def get_channel_embeddings(self, io_depth, targets, hidden_size, name="channel"): """Get separate embedding for each of the channels.""" targets_split = tf.split(targets, io_depth, axis=3) rgb_embedding_var = tf.get_variable("rgb_target_emb_%s" % name, [256 * io_depth, hidden_size]) rgb_embedding_var = tf.identity(rgb_embedding_var) rgb_embedding_var *= float(hidden_size)**0.5 channel_target_embs = [] for i in range(io_depth): # Adding the channel offsets to get the right embedding since the # embedding tensor has shape 256 * io_depth, hidden_size target_ids = tf.squeeze(targets_split[i], axis=3) + i * 256 target_embs = common_layers.gather(rgb_embedding_var, target_ids) channel_target_embs.append(target_embs) return tf.concat(channel_target_embs, axis=-1)
Example #19
Source File: common_layers.py From fine-lm with MIT License | 6 votes |
def top_1_tpu(inputs): """find max and argmax over the last dimension. Works well on TPU Args: inputs: A tensor with shape [..., depth] Returns: values: a Tensor with shape [...] indices: a Tensor with shape [...] """ inputs_max = tf.reduce_max(inputs, axis=-1, keepdims=True) mask = tf.to_int32(tf.equal(inputs_max, inputs)) index = tf.range(tf.shape(inputs)[-1]) * mask return tf.squeeze(inputs_max, -1), tf.reduce_max(index, axis=-1)
Example #20
Source File: interaction.py From icme2019 with MIT License | 5 votes |
def call(self, inputs, **kwargs): if K.ndim(inputs) != 2: raise ValueError( "Unexpected inputs dimensions %d, expect to be 2 dimensions" % (K.ndim(inputs))) x_0 = tf.expand_dims(inputs, axis=2) x_l = x_0 for i in range(self.layer_num): xl_w = tf.tensordot(x_l, self.kernels[i], axes=(1, 0)) dot_ = tf.matmul(x_0, xl_w) x_l = dot_ + self.bias[i] + x_l x_l = tf.squeeze(x_l, axis=2) return x_l
Example #21
Source File: interaction.py From icme2019 with MIT License | 5 votes |
def call(self, inputs, **kwargs): if K.ndim(inputs) != 3: raise ValueError( "Unexpected inputs dimensions %d, expect to be 3 dimensions" % (K.ndim(inputs))) querys = tf.tensordot(inputs, self.W_Query, axes=(-1, 0)) # None F D*head_num keys = tf.tensordot(inputs, self.W_key, axes=(-1, 0)) values = tf.tensordot(inputs, self.W_Value, axes=(-1, 0)) # head_num None F D querys = tf.stack(tf.split(querys, self.head_num, axis=2)) keys = tf.stack(tf.split(keys, self.head_num, axis=2)) values = tf.stack(tf.split(values, self.head_num, axis=2)) inner_product = tf.matmul( querys, keys, transpose_b=True) # head_num None F F self.normalized_att_scores = tf.nn.softmax(inner_product) result = tf.matmul(self.normalized_att_scores, values) # head_num None F D result = tf.concat(tf.split(result, self.head_num, ), axis=-1) result = tf.squeeze(result, axis=0) # None F D*head_num if self.use_res: result += tf.tensordot(inputs, self.W_Res, axes=(-1, 0)) result = tf.nn.relu(result) return result
Example #22
Source File: griffin_lim.py From Griffin_lim with MIT License | 5 votes |
def spectrogram2wav(spectrogram, n_iter=hparams.griffin_lim_iters, n_fft=(hparams.num_freq - 1) * 2, win_length=int(hparams.frame_length_ms / 1000 * hparams.sample_rate), hop_length=int(hparams.frame_shift_ms / 1000 * hparams.sample_rate)): '''Converts spectrogram into a waveform using Griffin-lim's raw. ''' def invert_spectrogram(spectrogram): ''' spectrogram: [t, f] ''' spectrogram = tf.expand_dims(spectrogram, 0) inversed = tf.contrib.signal.inverse_stft(spectrogram, win_length, hop_length, n_fft) squeezed = tf.squeeze(inversed, 0) return squeezed spectrogram = tf.transpose(spectrogram) spectrogram = tf.cast(spectrogram, dtype=tf.complex64) # [t, f] X_best = tf.identity(spectrogram) for i in range(n_iter): X_t = invert_spectrogram(X_best) est = tf.contrib.signal.stft(X_t, win_length, hop_length, n_fft, pad_end=False) # (1, T, n_fft/2+1) phase = est / tf.cast(tf.maximum(1e-8, tf.abs(est)), tf.complex64) # [t, f] X_best = spectrogram * phase # [t, t] X_t = invert_spectrogram(X_best) y = tf.real(X_t) return y
Example #23
Source File: critic.py From neural-combinatorial-optimization-rl-tensorflow with MIT License | 5 votes |
def predict_rewards(self,input_): with tf.variable_scope("encoder"): Encoder = Attentive_encoder(self.config) encoder_output = Encoder.encode(input_) frame = tf.reduce_mean(encoder_output, 1) # [Batch size, Sequence Length, Num_neurons] to [Batch size, Num_neurons] with tf.variable_scope("ffn"): # ffn 1 h0 = tf.layers.dense(frame, self.num_neurons, activation=tf.nn.relu, kernel_initializer=self.initializer) # ffn 2 w1 =tf.get_variable("w1", [self.num_neurons, 1], initializer=self.initializer) b1 = tf.Variable(self.init_baseline, name="b1") self.predictions = tf.squeeze(tf.matmul(h0, w1)+b1)
Example #24
Source File: inception_preprocessing.py From DOTA_models with Apache License 2.0 | 5 votes |
def preprocess_for_eval(image, height, width, central_fraction=0.875, scope=None): """Prepare one image for evaluation. If height and width are specified it would output an image with that size by applying resize_bilinear. If central_fraction is specified it would crop the central fraction of the input image. Args: image: 3-D Tensor of image. If dtype is tf.float32 then the range should be [0, 1], otherwise it would converted to tf.float32 assuming that the range is [0, MAX], where MAX is largest positive representable number for int(8/16/32) data type (see `tf.image.convert_image_dtype` for details) height: integer width: integer central_fraction: Optional Float, fraction of the image to crop. scope: Optional scope for name_scope. Returns: 3-D float Tensor of prepared image. """ with tf.name_scope(scope, 'eval_image', [image, height, width]): if image.dtype != tf.float32: image = tf.image.convert_image_dtype(image, dtype=tf.float32) # Crop the central region of the image with an area containing 87.5% of # the original image. if central_fraction: image = tf.image.central_crop(image, central_fraction=central_fraction) if height and width: # Resize the image to the specified height and width. image = tf.expand_dims(image, 0) image = tf.image.resize_bilinear(image, [height, width], align_corners=False) image = tf.squeeze(image, [0]) image = tf.subtract(image, 0.5) image = tf.multiply(image, 2.0) return image
Example #25
Source File: adversarial_losses.py From DOTA_models with Apache License 2.0 | 5 votes |
def _kl_divergence_with_logits(q_logits, p_logits, weights): """Returns weighted KL divergence between distributions q and p. Args: q_logits: logits for 1st argument of KL divergence shape [num_timesteps * batch_size, num_classes] if num_classes > 2, and [num_timesteps * batch_size] if num_classes == 2. p_logits: logits for 2nd argument of KL divergence with same shape q_logits. weights: 1-D float tensor with shape [num_timesteps * batch_size]. Elements should be 1.0 only on end of sequences Returns: KL: float scalar. """ # For logistic regression if FLAGS.num_classes == 2: q = tf.nn.sigmoid(q_logits) kl = (-tf.nn.sigmoid_cross_entropy_with_logits(logits=q_logits, labels=q) + tf.nn.sigmoid_cross_entropy_with_logits(logits=p_logits, labels=q)) kl = tf.squeeze(kl) # For softmax regression else: q = tf.nn.softmax(q_logits) kl = tf.reduce_sum( q * (tf.nn.log_softmax(q_logits) - tf.nn.log_softmax(p_logits)), 1) num_labels = tf.reduce_sum(weights) num_labels = tf.where(tf.equal(num_labels, 0.), 1., num_labels) kl.get_shape().assert_has_rank(1) weights.get_shape().assert_has_rank(1) loss = tf.identity(tf.reduce_sum(weights * kl) / num_labels, name='kl') return loss
Example #26
Source File: inputs.py From DOTA_models with Apache License 2.0 | 5 votes |
def _split_bidir_tokens(batch): tokens = batch.sequences[data_utils.SequenceWrapper.F_TOKEN_ID] # Tokens have shape [batch, time, 2] # forward and reverse have shape [batch, time]. forward, reverse = [ tf.squeeze(t, axis=[2]) for t in tf.split(tokens, 2, axis=2) ] return forward, reverse
Example #27
Source File: layers.py From DOTA_models with Apache License 2.0 | 5 votes |
def predictions(logits): """Class prediction from logits.""" inner_dim = logits.get_shape().as_list()[-1] with tf.name_scope('predictions'): # For binary classification if inner_dim == 1: pred = tf.cast(tf.greater(tf.squeeze(logits), 0.5), tf.int64) # For multi-class classification else: pred = tf.argmax(logits, 1) return pred
Example #28
Source File: train_eval.py From DOTA_models with Apache License 2.0 | 5 votes |
def model(self, collection, message, key=None): """The model for Alice, Bob, and Eve. If key=None, the first FC layer takes only the message as inputs. Otherwise, it uses both the key and the message. Args: collection: The graph keys collection to add new vars to. message: The input message to process. key: The input key (if any) to use. """ if key is not None: combined_message = tf.concat(axis=1, values=[message, key]) else: combined_message = message # Ensure that all variables created are in the specified collection. with tf.contrib.framework.arg_scope( [tf.contrib.layers.fully_connected, tf.contrib.layers.conv2d], variables_collections=[collection]): fc = tf.contrib.layers.fully_connected( combined_message, TEXT_SIZE + KEY_SIZE, biases_initializer=tf.constant_initializer(0.0), activation_fn=None) # Perform a sequence of 1D convolutions (by expanding the message out to 2D # and then squeezing it back down). fc = tf.expand_dims(fc, 2) # 2,1 -> 1,2 conv = tf.contrib.layers.conv2d( fc, 2, 2, 2, 'SAME', activation_fn=tf.nn.sigmoid) # 1,2 -> 1, 2 conv = tf.contrib.layers.conv2d( conv, 2, 1, 1, 'SAME', activation_fn=tf.nn.sigmoid) # 1,2 -> 1, 1 conv = tf.contrib.layers.conv2d( conv, 1, 1, 1, 'SAME', activation_fn=tf.nn.tanh) conv = tf.squeeze(conv, 2) return conv
Example #29
Source File: network_units.py From DOTA_models with Apache License 2.0 | 5 votes |
def _maybe_apply_dropout(self, inputs, stride): # The |inputs| are rank 4 (one 1xN "image" per sequence). Squeeze out and # restore the singleton image height, so dropout is applied to the normal # rank 3 batched input tensor. inputs = tf.squeeze(inputs, [1]) inputs = maybe_apply_dropout(inputs, self._dropout_rate, self._attrs['dropout_per_sequence'], stride) inputs = tf.expand_dims(inputs, 1) return inputs
Example #30
Source File: ops.py From DOTA_models with Apache License 2.0 | 5 votes |
def reframe_box_masks_to_image_masks(box_masks, boxes, image_height, image_width): """Transforms the box masks back to full image masks. Embeds masks in bounding boxes of larger masks whose shapes correspond to image shape. Args: box_masks: A tf.float32 tensor of size [num_masks, mask_height, mask_width]. boxes: A tf.float32 tensor of size [num_masks, 4] containing the box corners. Row i contains [ymin, xmin, ymax, xmax] of the box corresponding to mask i. Note that the box corners are in normalized coordinates. image_height: Image height. The output mask will have the same height as the image height. image_width: Image width. The output mask will have the same width as the image width. Returns: A tf.float32 tensor of size [num_masks, image_height, image_width]. """ # TODO: Make this a public function. def transform_boxes_relative_to_boxes(boxes, reference_boxes): boxes = tf.reshape(boxes, [-1, 2, 2]) min_corner = tf.expand_dims(reference_boxes[:, 0:2], 1) max_corner = tf.expand_dims(reference_boxes[:, 2:4], 1) transformed_boxes = (boxes - min_corner) / (max_corner - min_corner) return tf.reshape(transformed_boxes, [-1, 4]) box_masks = tf.expand_dims(box_masks, axis=3) num_boxes = tf.shape(box_masks)[0] unit_boxes = tf.concat( [tf.zeros([num_boxes, 2]), tf.ones([num_boxes, 2])], axis=1) reverse_boxes = transform_boxes_relative_to_boxes(unit_boxes, boxes) image_masks = tf.image.crop_and_resize(image=box_masks, boxes=reverse_boxes, box_ind=tf.range(num_boxes), crop_size=[image_height, image_width], extrapolation_value=0.0) return tf.squeeze(image_masks, axis=3)