Что такое символические c тензоры в TensorFlow и Keras? - PullRequest
1 голос
/ 12 января 2020

Что такое символов c тензоров в TensorFlow и Keras? Чем они отличаются от других тензоров? Почему они вообще существуют? Где они появляются в TensorFlow и Keras? Как мы должны иметь с ними дело или с какими проблемами мы можем столкнуться при работе с ними?

В прошлом я сталкивался с некоторыми проблемами, связанными с тензорами символьных c, такими как _SymbolicException, но с документацией не описывает эту концепцию. Также есть еще один пост , где также задается этот вопрос, но в этом посте я сосредотачиваюсь на этом конкретном c вопросе, так что ответы могут быть позже использованы в качестве ссылки.

1 Ответ

1 голос
/ 12 января 2020

Согласно blog.tensorflow.org , символ c тензор отличается от других тензоров тем, что они не содержат значений.

Давайте рассмотрим простой пример.

>>> a = tf.Variable(5, name="a")
>>> b = tf.Variable(7, name="b")
>>> c = (b**2 - a**3)**5
>>> print(c)

Вывод выглядит следующим образом:

tf.Tensor(1759441920, shape=(), dtype=int32)

Для приведенного выше значения специально определены в формате tf.Variable , и вывод в формате Tensor. Однако тензор должен содержать значение, чтобы его можно было рассматривать как таковое.

Тензоры Symboli c отличаются тем, что для определения тензора не требуется никаких явных значений, и это имеет значение с точки зрения построения нейронных функций. сети с TensorFlow 2.0, который теперь использует Keras в качестве API по умолчанию.

Ниже приведен пример последовательной нейронной сети, которая используется для построения модели классификации для прогнозирования случаев отмены бронирования в отеле (полное Jupyter Notebook здесь , если интересно):

from tensorflow.keras import models
from tensorflow.keras import layers

model = models.Sequential()
model.add(layers.Dense(8, activation='relu', input_shape=(4,)))
model.add(layers.Dense(1, activation='sigmoid'))

Это символически определенная модель, поскольку в сети явно не определены никакие значения. Скорее, создается каркас для считывания входных переменных сетью, а затем генерирования прогнозов.

В этом отношении Keras стал довольно популярным, учитывая, что он позволяет строить графики с использованием символов c. тензоры, сохраняя при этом императивную планировку.

...