Согласно 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. тензоры, сохраняя при этом императивную планировку.