I have created heterogeneous graph like this:
g = dgl.heterograph({('user','click','item'): (user_click_item_tuple['src'].to_numpy(),user_click_item_tuple['dst'].to_numpy()),
('user','purchase','item'): (user_purchase_item_tuple['src'].to_numpy(),user_purchase_item_tuple['dst'].to_numpy())})
g is as follows:
Graph(num_nodes={'item': 6639, 'user': 47277},
num_edges={('user', 'click', 'item'): 175145, ('user', 'purchase', 'item'): 44030},
metagraph=[('user', 'item', 'click'), ('user', 'item', 'purchase')])
I am trying to use the EdgeDataLoader for Link Prediction as:
negative_sampler = dgl.dataloading.negative_sampler.Uniform(5)
sampler = dgl.dataloading.MultiLayerNeighborSampler([4, 4])
train_dataloader = dgl.dataloading.EdgeDataLoader(
g,
torch.arange(g.number_of_edges()),
sampler,
negative_sampler=negative_sampler,
device=g.device,
# The following arguments are inherited from PyTorch DataLoader.
batch_size=1024,
shuffle=True,
drop_last=False,
num_workers=0
)