Skip to contents

A Keras tensor is a symbolic tensor-like object, which we augment with certain attributes that allow us to build a Keras model just by knowing the inputs and outputs of the model.

For instance, if a, b and c are Keras tensors, it becomes possible to do: model <- keras_model(input = c(a, b), output = c)


  shape = NULL,
  batch_size = NULL,
  dtype = NULL,
  sparse = NULL,
  batch_shape = NULL,
  name = NULL,
  tensor = NULL,
  optional = FALSE



A shape list (list of integers or NULL objects), not including the batch size. For instance, shape = c(32) indicates that the expected input will be batches of 32-dimensional vectors. Elements of this list can be NULL or NA; NULL/NA elements represent dimensions where the shape is not known and may vary (e.g. sequence length).


Optional static batch size (integer).


The data type expected by the input, as a string (e.g. "float32", "int32"...)


A boolean specifying whether the expected input will be sparse tensors. Note that, if sparse is FALSE, sparse tensors can still be passed into the input - they will be densified with a default value of 0. This feature is only supported with the TensorFlow backend. Defaults to FALSE.


Shape, including the batch dim.


Optional name string for the layer. Should be unique in a model (do not reuse the same name twice). It will be autogenerated if it isn't provided.


Optional existing tensor to wrap into the Input layer. If set, the layer will use this tensor rather than creating a new placeholder tensor.


Boolean, whether the input is optional or not. An optional input can accept NULL values.


A Keras tensor, which can passed to the inputs argument of (keras_model()).


# This is a logistic regression in Keras
input <- layer_input(shape=c(32))
output <- input |> layer_dense(16, activation='softmax')
model <- keras_model(input, output)

See also

Other model creation: