Я получил большой кадр данных pandas с данными измерений, основанными на времени (значения датчиков, информация о времени не должна быть входом в сеть).Этот фрейм данных помещается в тензор, а затем загружается с torch.Dataloader.
Загрузчик данных очень медленный, загрузка графического процессора составляет ~ 3%.
Как видно из кода ниженабор данных помещается в тензор и затем помещается в torch.utils.data.DataLoader.Этот загрузчик затем используется с enumerate (Dataloader).
Во время моего исследования я обнаружил torch.utils.data.TensorDataset, но когда я пытаюсь поместить тензор в этот тип, я получаю ошибку: TypeError: Variableданные должны быть тензором, но получили список
Есть ли какие-либо предложения по этому поводу?
Также я нашел сэмплеры из torch.Но когда их использовать, когда я получаю данные из загрузчика данных, просто очень медленно.
dataset = big_dataframe_flt.values
(looks like: array([[ 0.17114914, -0.67040386, -0.72875149, ..., -0.51023438,
0.49735906, -0.74075046],
[ 0.17114914, -0.67088608, -0.72631001, ..., -0.53046875,
0.49741296, -0.74127526],)
dataset = torch.tensor(dataset).float()
dataset = torch.utils.data.TensorDataset(dataset)
data_loader = torch.utils.data.DataLoader(dataset=dataset, batch_size=100, shuffle=True, num_workers=4, pin_memory=True)
for epoch in range(num_epochs):
model.train()
for batch_idx, data in enumerate(data_loader):
data = Variable(data).to(device)
recon_batch, mu, var = model(data)
# Backprop and optimize
loss = loss_function(recon_batch, data, mu, var)
optimizer.zero_grad()
loss.backward()
optimizer.step()
data = Variable(data).to(device)
TypeError: Variable data has to be a tensor, but got list