Here’s some more context - the iterator is coming from the torchtext bucketiterator .  The label has its own field , batch.label so that is not it.  The values I see are integers, as though a single numericalized  sentence from the batch were being sent as the mystery  second tuple element .
fields = {'text: ('text',TEXT), 'label': ('label',LABEL)}
train_data, test_data, validate_data = data.TabularDataset.splits(
        path=path,
        train=trainfile,
        test=testfile,
        validation=validationfile,
        format='csv',  #csv_reader_params=
        fields=fields
    )
train_iterator, test_iterator,valid_iterator = data.BucketIterator.splits(
        (train_data, test_data,validate_data),
        batch_size=BATCH_SIZE,
        sort_key=lambda x: len(x.text),
        device=device)
for idx, batch in enumerate(valid_iterator):
        text = batch.text[0]    # this is the first element of the batch.text tuple - what is the second??
        target = batch.label