Python tensorflow.SparseTensor() Examples
The following are 30
code examples of tensorflow.SparseTensor().
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: matmul.py From spektral with MIT License | 7 votes |
def mixed_mode_dot(a, b): """ Computes the equivalent of `tf.einsum('ij,bjk->bik', a, b)`, but works for both dense and sparse inputs. :param a: Tensor or SparseTensor with rank 2. :param b: Tensor or SparseTensor with rank 3. :return: Tensor or SparseTensor with rank 3. """ s_0_, s_1_, s_2_ = K.int_shape(b) B_T = ops.transpose(b, (1, 2, 0)) B_T = ops.reshape(B_T, (s_1_, -1)) output = dot(a, B_T) output = ops.reshape(output, (s_1_, s_2_, -1)) output = ops.transpose(output, (2, 0, 1)) return output
Example #2
Source File: tf_example_decoder.py From DOTA_models with Apache License 2.0 | 6 votes |
def _reshape_instance_masks(self, keys_to_tensors): """Reshape instance segmentation masks. The instance segmentation masks are reshaped to [num_instances, height, width] and cast to boolean type to save memory. Args: keys_to_tensors: a dictionary from keys to tensors. Returns: A 3-D boolean tensor of shape [num_instances, height, width]. """ masks = keys_to_tensors['image/segmentation/object'] if isinstance(masks, tf.SparseTensor): masks = tf.sparse_tensor_to_dense(masks) height = keys_to_tensors['image/height'] width = keys_to_tensors['image/width'] to_shape = tf.cast(tf.stack([-1, height, width]), tf.int32) return tf.cast(tf.reshape(masks, to_shape), tf.bool)
Example #3
Source File: tf_example_decoder.py From Person-Detection-and-Tracking with MIT License | 6 votes |
def _reshape_instance_masks(self, keys_to_tensors): """Reshape instance segmentation masks. The instance segmentation masks are reshaped to [num_instances, height, width]. Args: keys_to_tensors: a dictionary from keys to tensors. Returns: A 3-D float tensor of shape [num_instances, height, width] with values in {0, 1}. """ height = keys_to_tensors['image/height'] width = keys_to_tensors['image/width'] to_shape = tf.cast(tf.stack([-1, height, width]), tf.int32) masks = keys_to_tensors['image/object/mask'] if isinstance(masks, tf.SparseTensor): masks = tf.sparse_tensor_to_dense(masks) masks = tf.reshape(tf.to_float(tf.greater(masks, 0.0)), to_shape) return tf.cast(masks, tf.float32)
Example #4
Source File: attention_seq2seq.py From tensorflow_end2end_speech_recognition with MIT License | 6 votes |
def compute_ler(self, labels_true, labels_pred): """Operation for computing LER (Label Error Rate). Args: labels_true: A SparseTensor of target labels labels_pred: A SparseTensor of predicted labels Returns: ler_op: operation for computing LER """ # Compute LER (normalize by label length) ler_op = tf.reduce_mean(tf.edit_distance( labels_pred, labels_true, normalize=True)) # TODO: consider <EOS> # Add a scalar summary for the snapshot of LER # with tf.name_scope("ler"): # self.summaries_train.append(tf.summary.scalar( # 'ler_train', ler_op)) # self.summaries_dev.append(tf.summary.scalar( # 'ler_dev', ler_op)) # TODO: feed_dictのタイミング違うからエラーになる # global_stepをupdateする前にする? return ler_op
Example #5
Source File: LookupConvolution2d.py From tf-lcnn with GNU General Public License v3.0 | 6 votes |
def extract_dense_weights(sess): for key in dense_layers.keys(): layer = dense_layers[key] # sparse kernel dense_kernel = layer.kernel dense_kernel_shape = dense_kernel.get_shape().as_list() # dense_kernel = tf.reshape(dense_kernel, [dense_kernel_shape[0] * dense_kernel_shape[1] * dense_kernel_shape[2], # dense_kernel_shape[3]]) # dense_kernel = tf.transpose(dense_kernel) idx = tf.where(tf.not_equal(dense_kernel, 0)) sparse_kernel = tf.SparseTensor(idx, tf.gather_nd(dense_kernel, idx), dense_kernel.get_shape()) if layer.bias is not None: dk, k, b = sess.run([dense_kernel, sparse_kernel, layer.bias]) else: dk, k = sess.run([dense_kernel, sparse_kernel]) b = None dense_weights['%s/%s' % (key, 'kernel_dense')] = dk dense_weights['%s/%s' % (key, 'kernel')] = k dense_weights['%s/%s' % (key, 'kernel_shape')] = dense_kernel_shape dense_weights['%s/%s' % (key, 'bias')] = b
Example #6
Source File: tf_example_decoder.py From object_detector_app with MIT License | 6 votes |
def _reshape_instance_masks(self, keys_to_tensors): """Reshape instance segmentation masks. The instance segmentation masks are reshaped to [num_instances, height, width] and cast to boolean type to save memory. Args: keys_to_tensors: a dictionary from keys to tensors. Returns: A 3-D boolean tensor of shape [num_instances, height, width]. """ masks = keys_to_tensors['image/segmentation/object'] if isinstance(masks, tf.SparseTensor): masks = tf.sparse_tensor_to_dense(masks) height = keys_to_tensors['image/height'] width = keys_to_tensors['image/width'] to_shape = tf.cast(tf.stack([-1, height, width]), tf.int32) return tf.cast(tf.reshape(masks, to_shape), tf.bool)
Example #7
Source File: matmul.py From spektral with MIT License | 6 votes |
def matmul_A_BT(a, b): """ Computes A * B.T, dealing automatically with sparsity and data modes. :param a: Tensor or SparseTensor with rank 2 or 3. :param b: Tensor or SparseTensor with rank 2 or 3. :return: Tensor or SparseTensor with rank = max(rank(a), rank(b)). """ mode = modes.autodetect_mode(a, b) if mode == modes.SINGLE or mode == modes.iMIXED: # Single (rank(a)=2, rank(b)=2) # Inverted mixed (rank(a)=3, rank(b)=2) b_t = ops.transpose(b) elif mode == modes.MIXED or mode == modes.BATCH: # Mixed (rank(a)=2, rank(b)=3) # Batch (rank(a)=3, rank(b)=3) b_t = ops.transpose(b, (0, 2, 1)) else: raise ValueError('Expected ranks to be 2 or 3, got {} and {}'.format( K.ndim(a), K.ndim(b) )) return matmul_A_B(a, b_t)
Example #8
Source File: tf_example_decoder.py From Person-Detection-and-Tracking with MIT License | 6 votes |
def _reshape_keypoints(self, keys_to_tensors): """Reshape keypoints. The instance segmentation masks are reshaped to [num_instances, num_keypoints, 2]. Args: keys_to_tensors: a dictionary from keys to tensors. Returns: A 3-D float tensor of shape [num_instances, num_keypoints, 2] with values in {0, 1}. """ y = keys_to_tensors['image/object/keypoint/y'] if isinstance(y, tf.SparseTensor): y = tf.sparse_tensor_to_dense(y) y = tf.expand_dims(y, 1) x = keys_to_tensors['image/object/keypoint/x'] if isinstance(x, tf.SparseTensor): x = tf.sparse_tensor_to_dense(x) x = tf.expand_dims(x, 1) keypoints = tf.concat([y, x], 1) keypoints = tf.reshape(keypoints, [-1, self._num_keypoints, 2]) return keypoints
Example #9
Source File: tf_ops.py From nucleus7 with Mozilla Public License 2.0 | 6 votes |
def dense_to_sparse(dense_tensor: tf.Tensor, shape: list) -> tf.SparseTensor: """ Convert dense tensor to sparse one Parameters ---------- dense_tensor dense tensor shape shape of tensor Returns ------- sparse_tensor sparse tensor """ sparse_indices = tf.where(tf.not_equal(dense_tensor, 0)) sparse_tensor = tf.SparseTensor( sparse_indices, tf.gather_nd(dense_tensor, sparse_indices), shape) return sparse_tensor
Example #10
Source File: tf_example_decoder.py From vehicle_counting_tensorflow with MIT License | 6 votes |
def _reshape_instance_masks(self, keys_to_tensors): """Reshape instance segmentation masks. The instance segmentation masks are reshaped to [num_instances, height, width]. Args: keys_to_tensors: a dictionary from keys to tensors. Returns: A 3-D float tensor of shape [num_instances, height, width] with values in {0, 1}. """ height = keys_to_tensors['image/height'] width = keys_to_tensors['image/width'] to_shape = tf.cast(tf.stack([-1, height, width]), tf.int32) masks = keys_to_tensors['image/object/mask'] if isinstance(masks, tf.SparseTensor): masks = tf.sparse_tensor_to_dense(masks) masks = tf.reshape(tf.to_float(tf.greater(masks, 0.0)), to_shape) return tf.cast(masks, tf.float32)
Example #11
Source File: tf_example_decoder.py From vehicle_counting_tensorflow with MIT License | 6 votes |
def _reshape_keypoints(self, keys_to_tensors): """Reshape keypoints. The instance segmentation masks are reshaped to [num_instances, num_keypoints, 2]. Args: keys_to_tensors: a dictionary from keys to tensors. Returns: A 3-D float tensor of shape [num_instances, num_keypoints, 2] with values in {0, 1}. """ y = keys_to_tensors['image/object/keypoint/y'] if isinstance(y, tf.SparseTensor): y = tf.sparse_tensor_to_dense(y) y = tf.expand_dims(y, 1) x = keys_to_tensors['image/object/keypoint/x'] if isinstance(x, tf.SparseTensor): x = tf.sparse_tensor_to_dense(x) x = tf.expand_dims(x, 1) keypoints = tf.concat([y, x], 1) keypoints = tf.reshape(keypoints, [-1, self._num_keypoints, 2]) return keypoints
Example #12
Source File: tf_data_utils.py From nucleus7 with Mozilla Public License 2.0 | 6 votes |
def decode_field(self, field_name: str, field_value: Union[tf.Tensor, tf.SparseTensor], field_type: Optional[tf.DType] = None) -> tf.Tensor: """ Decode a field from a tfrecord example Parameters ---------- field_name name of the field, if nested - will be separated using "/" field_value value of the field from tfrecords example field_type type of the decoded field from self.get_tfrecords_output_types or None, if it was not provided """ # pylint: disable=no-self-use # is designed to be overridden # pylint: disable=unused-argument # this method is really an interface, but has a default implementation. if field_type is None: return field_value return tf.decode_raw(field_value, field_type)
Example #13
Source File: matmul.py From spektral with MIT License | 6 votes |
def matmul_A_B(a, b): """ Computes A * B, dealing automatically with sparsity and data modes. :param a: Tensor or SparseTensor with rank 2 or 3. :param b: Tensor or SparseTensor with rank 2 or 3. :return: Tensor or SparseTensor with rank = max(rank(a), rank(b)). """ mode = modes.autodetect_mode(a, b) if mode == modes.MIXED: # Mixed mode (rank(a)=2, rank(b)=3) output = mixed_mode_dot(a, b) elif mode == modes.iMIXED: # Inverted mixed (rank(a)=3, rank(b)=2) # This implementation is faster than using rank 3 sparse matmul with tfsp s_1_a, s_2_a = tf.shape(a)[1], tf.shape(a)[2] s_1_b = tf.shape(b)[1] a_flat = ops.reshape(a, (-1, s_2_a)) output = dot(a_flat, b) output = ops.reshape(output, (-1, s_1_a, s_1_b)) else: # Single (rank(a)=2, rank(b)=2) and batch (rank(a)=3, rank(b)=3) mode output = dot(a, b) return output
Example #14
Source File: svm.py From TensorFlow-in-a-Nutshell with MIT License | 6 votes |
def parseFeatures(self): """ SVM classifier with (hashed) sparse features.""" def input_fn(): return { 'example_id': tf.constant(['1', '2', '3']), 'price': tf.constant([[0.8], [0.6], [0.3]]), 'country': tf.SparseTensor( values=['IT', 'US', 'GB'], indices=[[0, 0], [1, 0], [2, 0]], shape=[3, 1]), }, tf.constant([[0], [1], [1]]) price = tf.contrib.layers.real_valued_column('price') country = tf.contrib.layers.sparse_column_with_hash_bucket( 'country', hash_bucket_size=5) svm_classifier = tf.contrib.learn.SVM(feature_columns=[price, country], example_id_column='example_id', l1_regularization=0.0, l2_regularization=1.0) svm_classifier.fit(input_fn=input_fn, steps=30) accuracy = svm_classifier.evaluate(input_fn=input_fn, steps=1)['accuracy']
Example #15
Source File: wide.py From TensorFlow-in-a-Nutshell with MIT License | 6 votes |
def input_fn(df, train=False): """Input builder function.""" # Creates a dictionary mapping from each continuous feature column name (k) to # the values of that column stored in a constant Tensor. continuous_cols = {k: tf.constant(df[k].values) for k in CONTINUOUS_COLUMNS} # Creates a dictionary mapping from each categorical feature column name (k) # to the values of that column stored in a tf.SparseTensor. categorical_cols = {k: tf.SparseTensor( indices=[[i, 0] for i in range(df[k].size)], values=df[k].values, shape=[df[k].size, 1]) for k in CATEGORICAL_COLUMNS} # Merges the two dictionaries into one. feature_cols = dict(continuous_cols) feature_cols.update(categorical_cols) # Converts the label column into a constant Tensor. if train: label = tf.constant(df[SURVIVED_COLUMN].values) # Returns the feature columns and the label. return feature_cols, label else: return feature_cols
Example #16
Source File: ctc.py From tensorflow_end2end_speech_recognition with MIT License | 6 votes |
def compute_ler(self, decode_op, labels): """Operation for computing LER (Label Error Rate). Args: decode_op: operation for decoding labels: A SparseTensor of target labels Return: ler_op: operation for computing LER """ # Compute LER (normalize by label length) ler_op = tf.reduce_mean(tf.edit_distance( decode_op, labels, normalize=True)) # Add a scalar summary for the snapshot of LER self.summaries_train.append(tf.summary.scalar('ler_train', ler_op)) self.summaries_dev.append(tf.summary.scalar('ler_dev', ler_op)) return ler_op
Example #17
Source File: multitask_ctc.py From tensorflow_end2end_speech_recognition with MIT License | 6 votes |
def create_placeholders(self): """Create placeholders and append them to list.""" self.inputs_pl_list.append( tf.placeholder(tf.float32, shape=[None, None, self.input_size], name='input')) self.labels_pl_list.append( tf.SparseTensor(tf.placeholder(tf.int64, name='indices'), tf.placeholder(tf.int32, name='values'), tf.placeholder(tf.int64, name='shape'))) self.labels_sub_pl_list.append( tf.SparseTensor(tf.placeholder(tf.int64, name='indices_sub'), tf.placeholder(tf.int32, name='values_sub'), tf.placeholder(tf.int64, name='shape_sub'))) self.inputs_seq_len_pl_list.append( tf.placeholder(tf.int32, shape=[None], name='inputs_seq_len')) self.keep_prob_pl_list.append( tf.placeholder(tf.float32, name='keep_prob'))
Example #18
Source File: sparse.py From spektral with MIT License | 6 votes |
def sparse_add_self_loops(indices, N=None): """ Given the indices of a square SparseTensor, adds the diagonal entries (i, i) and returns the reordered indices. :param indices: Tensor of rank 2, the indices to a SparseTensor. :param N: the size of the N x N SparseTensor indexed by the indices. If `None`, N is calculated as the maximum entry in the indices plus 1. :return: Tensor of rank 2, the indices to a SparseTensor. """ N = tf.reduce_max(indices) + 1 if N is None else N row, col = indices[..., 0], indices[..., 1] mask = tf.ensure_shape(row != col, row.shape) sl_indices = tf.range(N, dtype=row.dtype)[:, None] sl_indices = tf.repeat(sl_indices, 2, -1) indices = tf.concat((indices[mask], sl_indices), 0) dummy_values = tf.ones_like(indices[:, 0]) indices, _ = gen_sparse_ops.sparse_reorder(indices, dummy_values, (N, N)) return indices
Example #19
Source File: tf_example_decoder.py From ros_people_object_detection_tensorflow with Apache License 2.0 | 6 votes |
def _reshape_instance_masks(self, keys_to_tensors): """Reshape instance segmentation masks. The instance segmentation masks are reshaped to [num_instances, height, width]. Args: keys_to_tensors: a dictionary from keys to tensors. Returns: A 3-D float tensor of shape [num_instances, height, width] with values in {0, 1}. """ height = keys_to_tensors['image/height'] width = keys_to_tensors['image/width'] to_shape = tf.cast(tf.stack([-1, height, width]), tf.int32) masks = keys_to_tensors['image/object/mask'] if isinstance(masks, tf.SparseTensor): masks = tf.sparse_tensor_to_dense(masks) masks = tf.reshape(tf.to_float(tf.greater(masks, 0.0)), to_shape) return tf.cast(masks, tf.float32)
Example #20
Source File: Model.py From Handwritten-Line-Text-Recognition-using-Deep-Learning-with-Tensorflow with Apache License 2.0 | 6 votes |
def decoderOutputToText(self, ctcOutput): """ Extract texts from output of CTC decoder """ # Contains string of labels for each batch element encodedLabelStrs = [[] for i in range(Model.batchSize)] # Word beam search: label strings terminated by blank if self.decoderType == DecoderType.WordBeamSearch: blank = len(self.charList) for b in range(Model.batchSize): for label in ctcOutput[b]: if label == blank: break encodedLabelStrs[b].append(label) # TF decoders: label strings are contained in sparse tensor else: # Ctc returns tuple, first element is SparseTensor decoded = ctcOutput[0][0] # Go over all indices and save mapping: batch -> values idxDict = {b : [] for b in range(Model.batchSize)} for (idx, idx2d) in enumerate(decoded.indices): label = decoded.values[idx] batchElement = idx2d[0] # index according to [b,t] encodedLabelStrs[batchElement].append(label) # Map labels to chars for all batch elements return [str().join([self.charList[c] for c in labelStr]) for labelStr in encodedLabelStrs]
Example #21
Source File: array_ops.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def size_internal(input, name=None, optimize=True, out_type=dtypes.int32): # pylint: disable=redefined-builtin,protected-access """Returns the size of a tensor. Args: input: A `Tensor` or `SparseTensor`. name: A name for the operation (optional). optimize: if true, encode the size as a constant when possible. out_type: (Optional) The specified output type of the operation (`int32` or `int64`). Defaults to tf.int32. Returns: A `Tensor` of type `out_type`. """ with ops.name_scope(name, "Size", [input]) as name: if isinstance( input, (sparse_tensor.SparseTensor, sparse_tensor.SparseTensorValue)): return gen_math_ops._prod( gen_math_ops.cast(input.dense_shape, out_type), 0, name=name) else: input_tensor = ops.convert_to_tensor(input) input_shape = input_tensor.get_shape() if optimize and input_shape.is_fully_defined(): return constant(input_shape.num_elements(), out_type, name=name) return gen_array_ops.size(input, name=name, out_type=out_type)
Example #22
Source File: array_ops.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def size(input, name=None, out_type=dtypes.int32): # pylint: disable=redefined-builtin """Returns the size of a tensor. This operation returns an integer representing the number of elements in `input`. For example: ```python # 't' is [[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]]] size(t) ==> 12 ``` Args: input: A `Tensor` or `SparseTensor`. name: A name for the operation (optional). out_type: (Optional) The specified output type of the operation (`int32` or `int64`). Defaults to tf.int32. Returns: A `Tensor` of type `out_type`. Defaults to tf.int32. """ return size_internal(input, name, optimize=True, out_type=out_type)
Example #23
Source File: array_ops.py From lambda-packs with MIT License | 6 votes |
def shape(input, name=None, out_type=dtypes.int32): # pylint: disable=redefined-builtin """Returns the shape of a tensor. This operation returns a 1-D integer tensor representing the shape of `input`. For example: ```python # 't' is [[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]] shape(t) ==> [2, 2, 3] ``` Args: input: A `Tensor` or `SparseTensor`. name: A name for the operation (optional). out_type: (Optional) The specified output type of the operation (`int32` or `int64`). Defaults to `tf.int32`. Returns: A `Tensor` of type `out_type`. """ return shape_internal(input, name, optimize=True, out_type=out_type)
Example #24
Source File: array_ops.py From lambda-packs with MIT License | 6 votes |
def shape_internal(input, name=None, optimize=True, out_type=dtypes.int32): # pylint: disable=redefined-builtin """Returns the shape of a tensor. Args: input: A `Tensor` or `SparseTensor`. name: A name for the operation (optional). optimize: if true, encode the shape as a constant when possible. out_type: (Optional) The specified output type of the operation (`int32` or `int64`). Defaults to tf.int32. Returns: A `Tensor` of type `out_type`. """ with ops.name_scope(name, "Shape", [input]) as name: if isinstance( input, (sparse_tensor.SparseTensor, sparse_tensor.SparseTensorValue)): return gen_math_ops.cast(input.dense_shape, out_type) else: input_tensor = ops.convert_to_tensor(input) input_shape = input_tensor.get_shape() if optimize and input_shape.is_fully_defined(): return constant(input_shape.as_list(), out_type, name=name) return gen_array_ops.shape(input, name=name, out_type=out_type)
Example #25
Source File: array_ops.py From lambda-packs with MIT License | 6 votes |
def size(input, name=None, out_type=dtypes.int32): # pylint: disable=redefined-builtin """Returns the size of a tensor. This operation returns an integer representing the number of elements in `input`. For example: ```python # 't' is [[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]]] size(t) ==> 12 ``` Args: input: A `Tensor` or `SparseTensor`. name: A name for the operation (optional). out_type: (Optional) The specified output type of the operation (`int32` or `int64`). Defaults to tf.int32. Returns: A `Tensor` of type `out_type`. Defaults to tf.int32. """ return size_internal(input, name, optimize=True, out_type=out_type)
Example #26
Source File: array_ops.py From lambda-packs with MIT License | 6 votes |
def size_internal(input, name=None, optimize=True, out_type=dtypes.int32): # pylint: disable=redefined-builtin,protected-access """Returns the size of a tensor. Args: input: A `Tensor` or `SparseTensor`. name: A name for the operation (optional). optimize: if true, encode the size as a constant when possible. out_type: (Optional) The specified output type of the operation (`int32` or `int64`). Defaults to tf.int32. Returns: A `Tensor` of type `out_type`. """ with ops.name_scope(name, "Size", [input]) as name: if isinstance( input, (sparse_tensor.SparseTensor, sparse_tensor.SparseTensorValue)): return gen_math_ops._prod( gen_math_ops.cast(input.dense_shape, out_type), 0, name=name) else: input_tensor = ops.convert_to_tensor(input) input_shape = input_tensor.get_shape() if optimize and input_shape.is_fully_defined(): return constant(input_shape.num_elements(), out_type, name=name) return gen_array_ops.size(input, name=name, out_type=out_type)
Example #27
Source File: array_ops.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def shape_internal(input, name=None, optimize=True, out_type=dtypes.int32): # pylint: disable=redefined-builtin """Returns the shape of a tensor. Args: input: A `Tensor` or `SparseTensor`. name: A name for the operation (optional). optimize: if true, encode the shape as a constant when possible. out_type: (Optional) The specified output type of the operation (`int32` or `int64`). Defaults to tf.int32. Returns: A `Tensor` of type `out_type`. """ with ops.name_scope(name, "Shape", [input]) as name: if isinstance( input, (sparse_tensor.SparseTensor, sparse_tensor.SparseTensorValue)): return gen_math_ops.cast(input.dense_shape, out_type) else: input_tensor = ops.convert_to_tensor(input) input_shape = input_tensor.get_shape() if optimize and input_shape.is_fully_defined(): return constant(input_shape.as_list(), out_type, name=name) return gen_array_ops.shape(input, name=name, out_type=out_type)
Example #28
Source File: array_ops.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def shape(input, name=None, out_type=dtypes.int32): # pylint: disable=redefined-builtin """Returns the shape of a tensor. This operation returns a 1-D integer tensor representing the shape of `input`. For example: ```python # 't' is [[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]] shape(t) ==> [2, 2, 3] ``` Args: input: A `Tensor` or `SparseTensor`. name: A name for the operation (optional). out_type: (Optional) The specified output type of the operation (`int32` or `int64`). Defaults to `tf.int32`. Returns: A `Tensor` of type `out_type`. """ return shape_internal(input, name, optimize=True, out_type=out_type)
Example #29
Source File: sparse.py From spektral with MIT License | 6 votes |
def sp_matrix_to_sp_tensor(x): """ Converts a Scipy sparse matrix to a SparseTensor. :param x: a Scipy sparse matrix. :return: a SparseTensor. """ if not hasattr(x, 'tocoo'): try: x = sp.coo_matrix(x) except: raise TypeError('x must be convertible to scipy.coo_matrix') else: x = x.tocoo() out = tf.SparseTensor( indices=np.array([x.row, x.col]).T, values=x.data, dense_shape=x.shape ) return tf.sparse.reorder(out)
Example #30
Source File: sparse.py From spektral with MIT License | 6 votes |
def sp_batch_to_sp_tensor(a_list): """ Converts a list of Scipy sparse matrices to a rank 3 SparseTensor. :param a_list: list of Scipy sparse matrices with the same shape. :return: SparseTensor of rank 3. """ tensor_data = [] for i, a in enumerate(a_list): values = a.tocoo().data row = a.row col = a.col batch = np.ones_like(col) * i tensor_data.append((values, batch, row, col)) tensor_data = list(map(np.concatenate, zip(*tensor_data))) out = tf.SparseTensor( indices=np.array(tensor_data[1:]).T, values=tensor_data[0], dense_shape=(len(a_list), ) + a_list[0].shape ) return out