Я получил эту функцию для выполнения
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)