I am implementing a custom layer in Keras. If I print the shape of the input passed to the `call` method, I get `None` as the first element. Why is that? Shouldn't the first element be the batch size?

```
def call(self, x):
    print(x.shape)  # (None, ...)

```

When I call `model.fit`, I am passing the batch size

```
batch_size = 50
model.fit(x_train, y_train, ..., batch_size=batch_size)

```

So, when is the method `call` actually called? And what is the recommended way of getting the batch size in the method `call`?