Как использовать TensorDataset в Pytorch для объединения слов в правильную последовательность? - PullRequest
0 голосов
/ 29 мая 2020

Я получил эту функцию для выполнения

Implement the batch_data function to batch words data into chunks of size batch_size using the TensorDataset and DataLoader classes.

Например, предположим, что у нас есть следующие входные данные:

words = [1, 2, 3, 4, 5, 6, 7 ] sequence_length = 4 Ваш первый feature_tensor должен содержать значения:

[1, 2, 3, 4] И соответствующий target_tensor должен быть просто следующим "словом" / значением токенизированного слова:

5 Это должно продолжиться со вторым feature_tensor, target_tensor:

[2, 3, 4, 5] # features 6 # target

Итак, я попытался использовать

def batch_data(words, sequence_length, batch_size):
    """
    Batch the neural network data using DataLoader
    :param words: The word ids of the TV scripts
    :param sequence_length: The sequence length of each batch
    :param batch_size: The size of each batch; the number of sequences in a batch
    :return: DataLoader with batched data
    """

    # TODO: Implement function

    for i in range(batch_size):
        feature_tensor = words[:sequence_length]
        target_tensor = words[sequence_length]
        sequence_length+=1




    data = TensorDataset(torch.from_numpy(feature_tensor),torch.from_numpy(target_tensor))
    data_loader = DataLoader(data,batch_size=batch_size,shuffle =True)

    # return a dataloader
    return data_loader

Но я получаю сообщение об ошибке

---> 23     data = TensorDataset(torch.from_numpy(feature_tensor),torch.from_numpy(target_tensor))
     24     data_loader = DataLoader(data,batch_size=batch_size,shuffle =True)
     25     #print(feature_tensor)

TypeError: expected np.ndarray (got range)
...