Created
October 20, 2017 10:11
-
-
Save Audhil/f8d37633ca45ec11c4485f7ed1fead0c to your computer and use it in GitHub Desktop.
TensorFlow Hacks - shape, size, reshape blah blah blah
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 't' is [[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]] | |
shape(t) ==> [2, 2, 3] | |
# 't' is [[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]]] | |
size(t) ==> 12 | |
# 't' is [[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]] | |
# shape of tensor 't' is [2, 2, 3] | |
rank(t) ==> 3 | |
Note: The rank of a tensor is not the same as the rank of a matrix. | |
The rank of a tensor is the number of indices required to uniquely select each element of the tensor. | |
Rank is also known as "order", "degree", or "ndims." | |
# tensor 't' is [1, 2, 3, 4, 5, 6, 7, 8, 9] | |
# tensor 't' has shape [9] | |
reshape(t, [3, 3]) ==> [[1, 2, 3], | |
[4, 5, 6], | |
[7, 8, 9]] | |
# tensor 't' is [[[1, 1], [2, 2]], | |
# [[3, 3], [4, 4]]] | |
# tensor 't' has shape [2, 2, 2] | |
reshape(t, [2, 4]) ==> [[1, 1, 2, 2], | |
[3, 3, 4, 4]] | |
# tensor 't' is [[[1, 1, 1], | |
# [2, 2, 2]], | |
# [[3, 3, 3], | |
# [4, 4, 4]], | |
# [[5, 5, 5], | |
# [6, 6, 6]]] | |
# tensor 't' has shape [3, 2, 3] | |
# pass '[-1]' to flatten 't' | |
reshape(t, [-1]) ==> [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6] | |
# -1 can also be used to infer the shape | |
# -1 is inferred to be 9: | |
reshape(t, [2, -1]) ==> [[1, 1, 1, 2, 2, 2, 3, 3, 3], | |
[4, 4, 4, 5, 5, 5, 6, 6, 6]] | |
# -1 is inferred to be 2: | |
reshape(t, [-1, 9]) ==> [[1, 1, 1, 2, 2, 2, 3, 3, 3], | |
[4, 4, 4, 5, 5, 5, 6, 6, 6]] | |
# -1 is inferred to be 3: | |
reshape(t, [ 2, -1, 3]) ==> [[[1, 1, 1], | |
[2, 2, 2], | |
[3, 3, 3]], | |
[[4, 4, 4], | |
[5, 5, 5], | |
[6, 6, 6]]] | |
# tensor 't' is [7] | |
# shape `[]` reshapes to a scalar | |
reshape(t, []) ==> 7 | |
# 't' is a tensor of shape [1, 2, 1, 3, 1, 1] | |
shape(squeeze(t)) ==> [2, 3] | |
``` | |
Or, to remove specific size 1 dimensions: | |
```prettyprint | |
# 't' is a tensor of shape [1, 2, 1, 3, 1, 1] | |
shape(squeeze(t, [2, 4])) ==> [1, 2, 3, 1] | |
x = [1, 2, 3] | |
y = [4, 5, 6] | |
value = tf.meshgrid(x, y) | |
O/P | |
--- | |
XX = [[1, 1, 1], | |
[2, 2, 2], | |
[3, 3, 3]] | |
YY = [[4, 5, 6], | |
[4, 5, 6], | |
[4, 5, 6]] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment