make tf.sets
examples executable
Fixes #12969 PiperOrigin-RevId: 168549712
This commit is contained in:
parent
bece65c6f3
commit
c8a6131e9f
@ -139,42 +139,45 @@ def set_intersection(a, b, validate_indices=True):
|
||||
Example:
|
||||
|
||||
```python
|
||||
a = [
|
||||
[
|
||||
[
|
||||
[1, 2],
|
||||
[3],
|
||||
],
|
||||
[
|
||||
[4],
|
||||
[5, 6],
|
||||
],
|
||||
],
|
||||
]
|
||||
b = [
|
||||
[
|
||||
[
|
||||
[1, 3],
|
||||
[2],
|
||||
],
|
||||
[
|
||||
[4, 5],
|
||||
[5, 6, 7, 8],
|
||||
],
|
||||
],
|
||||
]
|
||||
set_intersection(a, b) = [
|
||||
[
|
||||
[
|
||||
[1],
|
||||
[],
|
||||
],
|
||||
[
|
||||
[4],
|
||||
[5, 6],
|
||||
],
|
||||
],
|
||||
]
|
||||
import tensorflow as tf
|
||||
import collections
|
||||
|
||||
# Represent the following array of sets as a sparse tensor:
|
||||
# a = np.array([[{1, 2}, {3}], [{4}, {5, 6}]])
|
||||
a = collections.OrderedDict([
|
||||
((0, 0, 0), 1),
|
||||
((0, 0, 1), 2),
|
||||
((0, 1, 0), 3),
|
||||
((1, 0, 0), 4),
|
||||
((1, 1, 0), 5),
|
||||
((1, 1, 1), 6),
|
||||
])
|
||||
a = tf.SparseTensor(list(a.keys()), list(a.values()), dense_shape=[2,2,2])
|
||||
|
||||
# b = np.array([[{1}, {}], [{4}, {5, 6, 7, 8}]])
|
||||
b = collections.OrderedDict([
|
||||
((0, 0, 0), 1),
|
||||
((1, 0, 0), 4),
|
||||
((1, 1, 0), 5),
|
||||
((1, 1, 1), 6),
|
||||
((1, 1, 2), 7),
|
||||
((1, 1, 3), 8),
|
||||
])
|
||||
b = tf.SparseTensor(list(b.keys()), list(b.values()), dense_shape=[2, 2, 4])
|
||||
|
||||
# `tf.sets.set_intersection` is applied to each aligned pair of sets.
|
||||
tf.sets.set_intersection(a, b)
|
||||
|
||||
# The result will be equivalent to either of:
|
||||
#
|
||||
# np.array([[{1}, {}], [{4}, {5, 6}]])
|
||||
#
|
||||
# collections.OrderedDict([
|
||||
# ((0, 0, 0), 1),
|
||||
# ((1, 0, 0), 4),
|
||||
# ((1, 1, 0), 5),
|
||||
# ((1, 1, 1), 6),
|
||||
# ])
|
||||
```
|
||||
|
||||
Args:
|
||||
@ -202,42 +205,46 @@ def set_difference(a, b, aminusb=True, validate_indices=True):
|
||||
Example:
|
||||
|
||||
```python
|
||||
a = [
|
||||
[
|
||||
[
|
||||
[1, 2],
|
||||
[3],
|
||||
],
|
||||
[
|
||||
[4],
|
||||
[5, 6],
|
||||
],
|
||||
],
|
||||
]
|
||||
b = [
|
||||
[
|
||||
[
|
||||
[1, 3],
|
||||
[2],
|
||||
],
|
||||
[
|
||||
[4, 5],
|
||||
[5, 6, 7, 8],
|
||||
],
|
||||
],
|
||||
]
|
||||
set_difference(a, b, aminusb=True) = [
|
||||
[
|
||||
[
|
||||
[2],
|
||||
[3],
|
||||
],
|
||||
[
|
||||
[],
|
||||
[],
|
||||
],
|
||||
],
|
||||
]
|
||||
import tensorflow as tf
|
||||
import collections
|
||||
|
||||
# Represent the following array of sets as a sparse tensor:
|
||||
# a = np.array([[{1, 2}, {3}], [{4}, {5, 6}]])
|
||||
a = collections.OrderedDict([
|
||||
((0, 0, 0), 1),
|
||||
((0, 0, 1), 2),
|
||||
((0, 1, 0), 3),
|
||||
((1, 0, 0), 4),
|
||||
((1, 1, 0), 5),
|
||||
((1, 1, 1), 6),
|
||||
])
|
||||
a = tf.SparseTensor(list(a.keys()), list(a.values()), dense_shape=[2, 2, 2])
|
||||
|
||||
# np.array([[{1, 3}, {2}], [{4, 5}, {5, 6, 7, 8}]])
|
||||
b = collections.OrderedDict([
|
||||
((0, 0, 0), 1),
|
||||
((0, 0, 1), 3),
|
||||
((0, 1, 0), 2),
|
||||
((1, 0, 0), 4),
|
||||
((1, 0, 1), 5),
|
||||
((1, 1, 0), 5),
|
||||
((1, 1, 1), 6),
|
||||
((1, 1, 2), 7),
|
||||
((1, 1, 3), 8),
|
||||
])
|
||||
b = tf.SparseTensor(list(b.keys()), list(b.values()), dense_shape=[2, 2, 4])
|
||||
|
||||
# `set_difference` is applied to each aligned pair of sets.
|
||||
tf.sets.set_difference(a, b)
|
||||
|
||||
# The result will be equivalent to either of:
|
||||
#
|
||||
# np.array([[{2}, {3}], [{}, {}]])
|
||||
#
|
||||
# collections.OrderedDict([
|
||||
# ((0, 0, 0), 2),
|
||||
# ((0, 0, 1), 3),
|
||||
# ])
|
||||
```
|
||||
|
||||
Args:
|
||||
@ -268,42 +275,54 @@ def set_union(a, b, validate_indices=True):
|
||||
Example:
|
||||
|
||||
```python
|
||||
a = [
|
||||
[
|
||||
[
|
||||
[1, 2],
|
||||
[3],
|
||||
],
|
||||
[
|
||||
[4],
|
||||
[5, 6],
|
||||
],
|
||||
],
|
||||
]
|
||||
b = [
|
||||
[
|
||||
[
|
||||
[1, 3],
|
||||
[2],
|
||||
],
|
||||
[
|
||||
[4, 5],
|
||||
[5, 6, 7, 8],
|
||||
],
|
||||
],
|
||||
]
|
||||
set_union(a, b) = [
|
||||
[
|
||||
[
|
||||
[1, 2, 3],
|
||||
[2, 3],
|
||||
],
|
||||
[
|
||||
[4, 5],
|
||||
[5, 6, 7, 8],
|
||||
],
|
||||
],
|
||||
]
|
||||
import tensorflow as tf
|
||||
import collections
|
||||
|
||||
# [[{1, 2}, {3}], [{4}, {5, 6}]]
|
||||
a = collections.OrderedDict([
|
||||
((0, 0, 0), 1),
|
||||
((0, 0, 1), 2),
|
||||
((0, 1, 0), 3),
|
||||
((1, 0, 0), 4),
|
||||
((1, 1, 0), 5),
|
||||
((1, 1, 1), 6),
|
||||
])
|
||||
a = tf.SparseTensor(list(a.keys()), list(a.values()), dense_shape=[2, 2, 2])
|
||||
|
||||
# [[{1, 3}, {2}], [{4, 5}, {5, 6, 7, 8}]]
|
||||
b = collections.OrderedDict([
|
||||
((0, 0, 0), 1),
|
||||
((0, 0, 1), 3),
|
||||
((0, 1, 0), 2),
|
||||
((1, 0, 0), 4),
|
||||
((1, 0, 1), 5),
|
||||
((1, 1, 0), 5),
|
||||
((1, 1, 1), 6),
|
||||
((1, 1, 2), 7),
|
||||
((1, 1, 3), 8),
|
||||
])
|
||||
b = tf.SparseTensor(list(b.keys()), list(b.values()), dense_shape=[2, 2, 4])
|
||||
|
||||
# `set_union` is applied to each aligned pair of sets.
|
||||
tf.sets.set_union(a, b)
|
||||
|
||||
# The result will be a equivalent to either of:
|
||||
#
|
||||
# np.array([[{1, 2, 3}, {2, 3}], [{4, 5}, {5, 6, 7, 8}]])
|
||||
#
|
||||
# collections.OrderedDict([
|
||||
# ((0, 0, 0), 1),
|
||||
# ((0, 0, 1), 2),
|
||||
# ((0, 0, 2), 3),
|
||||
# ((0, 1, 0), 2),
|
||||
# ((0, 1, 1), 3),
|
||||
# ((1, 0, 0), 4),
|
||||
# ((1, 0, 1), 5),
|
||||
# ((1, 1, 0), 5),
|
||||
# ((1, 1, 1), 6),
|
||||
# ((1, 1, 2), 7),
|
||||
# ((1, 1, 3), 8),
|
||||
# ])
|
||||
```
|
||||
|
||||
Args:
|
||||
|
Loading…
Reference in New Issue
Block a user