TensorFlow: Tensor Shape против Numpy Array Shape - PullRequest
0 голосов
/ 20 февраля 2020

В tf.shape () чем отличается форма тензора от формы массива numpy?

Пример 1:

t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]]) 
tf.shape(t) 

 <tf.Tensor: shape=(3,), dtype=int32, numpy=array([2, 2, 3], dtype=int32)>

Обратите внимание на тензор форма (3,), а форма массива [2, 2, 3]: 2 строки, 2 столбца, каждая строка имеет 3 уровня глубины. Откуда (3,) от? И почему второе измерение None после 3?

Пример 2:

c = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
tf.shape(c)

  <tf.Tensor: shape=(2,), dtype=int32, numpy=array([2, 3], dtype=int32)>

Обратите внимание: тензор имеет форму (2,), соответствующую 2 в массиве [2, 3]. Почему это соответствует здесь, но не в Примере 1?

Спасибо.

1 Ответ

0 голосов
/ 20 февраля 2020

Форма тензора определяется длиной формы массива numpy. Например -

t = tf.constant([[[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]],[[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]]]) 
tf.shape(t)

выведет

<tf.Tensor: shape=(4,), dtype=int32, numpy=array([2, 2, 2, 3], dtype=int32)>

Чтобы получить размер тензора, используйте

t.shape

.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...