A symbolic tensor is a tensor-like object that represents future data. It records the data's shape and data type without containing actual values, allowing a model's computation graph to be assembled before data is supplied. section 7.2.2
Building a Functional model
In a Keras Functional model, `keras_input(shape = c(3))` creates a symbolic tensor with shape `(None, 3)` and dtype `float32`. Calling a Dense layer on it returns another symbolic tensor: a 64-unit layer changes the shape to `(None, 64)`, and a final 10-unit softmax produces the model output. The `keras_model()` call then connects the symbolic inputs and outputs. section 7.2.2
Symbolic tensors make it possible to:
- Connect layers as graph operations while postponing real data values. section 7.2.2
Symbolic and eager tensors serve different purposes. An eager tensor contains a concrete example that can be explored interactively; a symbolic tensor represents the traced inputs and intermediate values used while a dataset pipeline is built or compiled. section 11.3.1

