Issue: `map()` fails midway due to format incompatibility 

Comment:
This is what I got. 

For the non-erroring data, it looks like (without the labels):

```
tensor([[  101, 10047,  3110,  ...,     0,     0,     0],
        [  101,  1045,  2514,  ...,     0,     0,     0],
        [  101,  1045,  2514,  ...,     0,     0,     0],
        ...,
        [  101,  1045,  2005,  ...,     0,     0,     0],
        [  101,  1045,  2572,  ...,     0,     0,     0],
        [  101, 10047,  7481,  ...,     0,     0,     0]]) 128
tensor([[1, 1, 1,  ..., 0, 0, 0],
        [1, 1, 1,  ..., 0, 0, 0],
        [1, 1, 1,  ..., 0, 0, 0],
        ...,
        [1, 1, 1,  ..., 0, 0, 0],
        [1, 1, 1,  ..., 0, 0, 0],
        [1, 1, 1,  ..., 0, 0, 0]]) 128
```

For the erroring part:

```
[tensor([ 101, 1045, 2064, 2102, 2393, 3110, 2066, 2242, 6355, 3047, 2004, 2574,
        2004, 1996, 8629, 2357, 2125, 4299, 1045, 2071, 2424, 2009, 2006, 7858,
         102,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
           0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
           0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
           0,    0,    0,    0,    0,    0]), tensor([  101, 10047,  5458,  1997,  3110, 11654,  1998, 11055,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0]), tensor([  101,  1045,  2074,  2064,  2102,  6073,  1996,  3110,  2008,  2026,
        14982,  2000,  5587,  2203, 16650, 29563,  2030,  2569,  4506,  2052,
         2191,  1037,  2738, 11552,  2208, 17044, 14540,  2100,  3375,   102,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0]),
...

[tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
...
```

I also tried investigating the shapes of the individual entries within a `batch` without the labels:

```py
def get_test_accuracy(model):
    def fn(batch):        
        try:
            inputs = {k:v.to(device) for k,v in batch.items() 
                    if k in tokenizer.model_input_names}
            with torch.no_grad():
                output = model(**inputs)
                pred_label = torch.argmax(output.logits, axis=-1)
            return {"predicted_label": pred_label.cpu().numpy()}
        except:
            for k in batch:
                if k != "label":
                    for  i in range(len(batch[k])):
                        print(batch[k][i].shape)
    return fn
```

They are:

```
...
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([66])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
torch.Size([69])
```

There are differing shapes. I understand if I set `batch_size=None` in `emotions_encoded = emotions.map(tokenize, batched=True)` the problem should be fixed as the whole dataset would be treated as a single batch. But is there a way to do that in batches?