源程序是在 “把数据转换成torch的tensor” 那里出错的,
错误提示如下
Traceback (most recent call last):
File "C:/Users/12254/Desktop/User-Difference-Attention-main - 1/uda_main.py", line 143, in <module>
args.batch_size), epoch, args, 'group')
File "C:\Users\12254\Desktop\User-Difference-Attention-main - 1\dataset.py", line 128, in get_group_dataloader
train_data = TensorDataset(torch.tensor(group).to(device), torch.tensor(group_members).to(device),
ValueError: expected sequence of length 61 at dim 1 (got 16)
错误代码如下:
for epoch in range(args.epoch):
# training
agree.train()
t1 = time()
training(agree, dataset.get_user_dataloader(
args.batch_size), epoch, args, 'user')
training(agree, dataset.get_group_dataloader(
args.batch_size), epoch, args, 'group')
print("user and group training time is: [%.1f s]" % (time() - t1))
t2 = time()
def get_group_dataloader(self, batch_size):
group, positem_negitem_at_g = self.get_train_instances(self.group_trainMatrix)
group_members = []
for gid in group:
group_members.append(self.g_m_d[gid])
train_data = TensorDataset(torch.tensor(group).to(device), torch.tensor(group_members).to(device),
torch.tensor(positem_negitem_at_g).to(device))
group_train_loader = DataLoader(train_data, batch_size=batch_size, shuffle=True)
return group_train_loader