Что именно квалифицируется как «Тензор» в TensorFlow? - PullRequest
0 голосов
/ 27 июня 2018

Я новичок в TensorFlow, только что прошел учебник по быстрому выполнению и наткнулся на функцию tf.decode_csv. Не зная об этом, я прочитал документацию. https://www.tensorflow.org/api_docs/python/tf/decode_csv

Я действительно не понимаю этого.

Документация гласит «записи: Тензор типа string». Итак, мой вопрос: что квалифицируется как «Тензор»?

Я попробовал следующий код:

dec_res = tf.decode_csv('0.1,0.2,0.3', [[0.0], [0.0], [0.0]])
print(dec_res, type(dec_res))



l = [[1,2,3],[4,5,6],[7,8,9]]
r = tf.reshape(l, [9,-1])
print(l, type(l))
print(r, type(r))

Итак, список dec_res содержит объекты tf.tensor. Это кажется разумным для меня. Но является ли обычная строка также «Тензорным» согласно документации?

Затем я попробовал что-то еще с функцией tf.reshape. В документации https://www.tensorflow.org/api_docs/python/tf/reshape говорится, что «тензор: тензор». Итак, l должен быть тензором. Но это не тип tf.tensor, а просто питон list. Это сбивает с толку.

Тогда в документации написано

Возвращает:

Тензор. Имеет тот же тип, что и тензор.

Но тип l равен list, где тип r равен tensorflow.python.framework.ops.Tensor. Так что типы не совпадают.

Тогда я подумал, что TensorFlow очень щедр, так как вещи являются тензорными. Итак, я попробовал:

class car(object):
def __init__(self, color):
    self.color = color


red_car = car('red')
#test_reshape = tf.reshape(red_car, [1, -1])
print(red_car.color) # to check, that red_car exists.

Теперь строка в комментариях приводит к ошибке.

Итак, кто-нибудь может мне помочь выяснить, что можно квалифицировать как «Тензор»?

П.С .: Я пытался прочитать исходный код tf.reshape, как указано в документации

Определяется в тензорном потоке / python / ops / gen_array_ops.py.

Но этот файл не существует в репозитории Github. Кто-нибудь знает, как это читать?

1 Ответ

0 голосов
/ 27 июня 2018

https://www.tensorflow.org/programmers_guide/tensors

TensorFlow, как видно из названия, является структурой для определения и запуска вычисления с участием тензоров. Тензор является обобщением векторы и матрицы для потенциально более высоких измерений. Внутренне TensorFlow представляет тензоры как n-мерные массивы базы Типы данных.

То, что вы наблюдаете, проистекает из того факта, что операции тензорного потока (например, изменение формы) могут быть построены из различных типов Python с использованием функции tf.convert_to_tensor:

https://www.tensorflow.org/api_docs/python/tf/convert_to_tensor

Все стандартные конструкторы Python op применяют эту функцию к каждому из их тензорные входы, что позволяет этим операциям принимать NumPy массивы, списки Python и скаляры в дополнение к объектам Tensor

...