Remove the batch dimension if needed from nested tensors using their specs.

If specs is None, the first dimension of each tensor will be removed. If specs are provided, each tensor is compared to the corresponding spec, and the first dimension is removed only if the tensor was batched.

tensors Nested list/tuple or dict of batched Tensors.
specs Nested list/tuple or dict of TensorSpecs, describing the shape of the non-batched Tensors.

A nested non-batched version of each tensor.

ValueError if the tensors and specs have incompatible dimensions or shapes.