Почему этот тензор имеет атрибут dtype дважды - PullRequest
0 голосов
/ 28 июня 2019

Я только что заметил этот странный тензор:

Out[124]: <tf.Tensor: id=7672038, shape=(1,), dtype=uint8, numpy=array([1], dtype=uint8)>

Имеет dtype дважды. Обычно вы не можете этого получить. Например,

tf.convert_to_tensor(np.array([1]))
Out[126]: <tf.Tensor: id=7672042, shape=(1,), dtype=int32, numpy=array([1])>

Почему это так и в чем разница?

Я только что заметил это: последний может использоваться как индекс для тензора, но первый не может. Выдает эту ошибку:

TypeError: только целые числа, кусочки (:), многоточие (...), tf.newaxis (None) и скалярные тензоры tf.int32 / tf.int64 являются действительными индексами, получили 1

Это глупая ошибка, потому что она говорит "получил 1", а 1 - допустимый индекс! потому что это целое число для громкого крика! см. dtype выше.

1 Ответ

0 голосов
/ 28 июня 2019

Он не имеет dtype дважды, второй dtype для массива numpy.

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