尝试将数据集切分成不同数量的簇进行实验,然后观察结果并进行比较。
分别设置num_parts为1500、1000和2000,根据实验观察,簇的数量越多,占用服务器的内存连越多,但是效果不一定好。在对Reddit数据及的实验中,num_parts为1000的效果更好。
1、设置num_parts=1500
cluster_data = ClusterData(data, num_parts=1500, recursive=False,
save_dir=dataset.processed_dir)
train_loader = ClusterLoader(cluster_data, batch_size=20, shuffle=True,
num_workers=12)
subgraph_loader = NeighborSampler(data.edge_index, sizes=[-1], batch_size=1024,
shuffle=False, num_workers=12)
Epoch: 01, Loss: 1.1428
Epoch: 02, Loss: 0.4720
Epoch: 03, Loss: 0.3936
Epoch: 04, Loss: 0.3564
Evaluating: 100%|██████████| 465930/465930 [01:09<00:00, 6739.99it/s] Epoch: 05, Loss: 0.3282, Train: 0.9571, Val: 0.9538, test: 0.9524
Epoch: 06, Loss: 0.3206
Epoch: 07, Loss: 0.3081
Epoch: 08, Loss: 0.2962
Epoch: 09, Loss: 0.2961
Evaluating: 100%|██████████| 465930/465930 [01:09<00:00, 6676.56it/s] Epoch: 10, Loss: 0.3293, Train: 0.9592, Val: 0.9504, test: 0.9495
Epoch: 11, Loss: 0.2807
Epoch: 12, Loss: 0.2759
Epoch: 13, Loss: 0.2669
Epoch: 14, Loss: 0.2659
Evaluating: 100%|██████████| 465930/465930 [01:09<00:00, 6693.68it/s] Epoch: 15, Loss: 0.2698, Train: 0.9641, Val: 0.9517, test: 0.9504
Epoch: 16, Loss: 0.2620
Epoch: 17, Loss: 0.2563
Epoch: 18, Loss: 0.2703
Epoch: 19, Loss: 0.2566
Evaluating: 100%|██████████| 465930/465930 [01:09<00:00, 6718.66it/s] Epoch: 20, Loss: 0.2656, Train: 0.9668, Val: 0.9514, test: 0.9511
Epoch: 21, Loss: 0.2543
Epoch: 22, Loss: 0.3028
Epoch: 23, Loss: 0.2498
Epoch: 24, Loss: 0.2395
Evaluating: 100%|██████████| 465930/465930 [01:10<00:00, 6639.66it/s] Epoch: 25, Loss: 0.2351, Train: 0.9707, Val: 0.9533, test: 0.9537
Epoch: 26, Loss: 0.2309
Epoch: 27, Loss: 0.2313
Epoch: 28, Loss: 0.2262
Epoch: 29, Loss: 0.2366
Evaluating: 100%|██████████| 465930/465930 [01:09<00:00, 6675.75it/s] Epoch: 30, Loss: 0.2401, Train: 0.9685, Val: 0.9491, test: 0.9503
2、设置num_parts=2000
cluster_data = ClusterData(data, num_parts=2000, recursive=False,
save_dir=dataset.processed_dir)
train_loader = ClusterLoader(cluster_data, batch_size=20, shuffle=True,
num_workers=12)
subgraph_loader = NeighborSampler(data.edge_index, sizes=[-1], batch_size=1024,
shuffle=False, num_workers=12)
Computing METIS partitioning...
Done!
/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py:477: UserWarning: This DataLoader will create 12 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
cpuset_checked))
Epoch: 01, Loss: 1.0488
Epoch: 02, Loss: 0.4664
Epoch: 03, Loss: 0.3923
Epoch: 04, Loss: 0.3600
Evaluating: 100%|██████████| 465930/465930 [01:13<00:00, 6326.51it/s] Epoch: 05, Loss: 0.3567, Train: 0.9367, Val: 0.9351, test: 0.9335
Epoch: 06, Loss: 0.3380
Epoch: 07, Loss: 0.3216
Epoch: 08, Loss: 0.3139
Epoch: 09, Loss: 0.3228
Evaluating: 100%|██████████| 465930/465930 [01:13<00:00, 6307.56it/s] Epoch: 10, Loss: 0.3003, Train: 0.9561, Val: 0.9470, test: 0.9455
Epoch: 11, Loss: 0.3107
Epoch: 12, Loss: 0.3318
Epoch: 13, Loss: 0.3029
Epoch: 14, Loss: 0.2885
Evaluating: 100%|██████████| 465930/465930 [01:13<00:00, 6318.85it/s] Epoch: 15, Loss: 0.2795, Train: 0.9599, Val: 0.9490, test: 0.9470
Epoch: 16, Loss: 0.2821
Epoch: 17, Loss: 0.2712
Epoch: 18, Loss: 0.2640
Epoch: 19, Loss: 0.3049
Evaluating: 100%|██████████| 465930/465930 [01:14<00:00, 6273.17it/s] Epoch: 20, Loss: 0.2669, Train: 0.9673, Val: 0.9533, test: 0.9531
Epoch: 21, Loss: 0.2621
Epoch: 22, Loss: 0.2600
Epoch: 23, Loss: 0.2563
Epoch: 24, Loss: 0.2605
Evaluating: 100%|██████████| 465930/465930 [01:14<00:00, 6264.83it/s] Epoch: 25, Loss: 0.2617, Train: 0.9626, Val: 0.9491, test: 0.9485
Epoch: 26, Loss: 0.2532
Epoch: 27, Loss: 0.2575
Epoch: 28, Loss: 0.2540
Epoch: 29, Loss: 0.2508
Evaluating: 100%|██████████| 465930/465930 [01:14<00:00, 6255.09it/s] Epoch: 30, Loss: 0.2528, Train: 0.9661, Val: 0.9493, test: 0.9485
2、设置num_parts=1000
cluster_data = ClusterData(data, num_parts=1000, recursive=False,
save_dir=dataset.processed_dir)
train_loader = ClusterLoader(cluster_data, batch_size=20, shuffle=True,
num_workers=12)
subgraph_loader = NeighborSampler(data.edge_index, sizes=[-1], batch_size=1024,
shuffle=False, num_workers=12)
Downloading https://data.dgl.ai/dataset/reddit.zip
Extracting data/Reddit/raw/reddit.zip
Processing...
Done!
Computing METIS partitioning...
Done!
/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py:477: UserWarning: This DataLoader will create 12 worker processes in total. Our suggested max number of worker in current system is 4, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
cpuset_checked))
Epoch: 01, Loss: 1.3489
Epoch: 02, Loss: 0.5354
Epoch: 03, Loss: 0.4202
Epoch: 04, Loss: 0.3678
Evaluating: 100%|██████████| 465930/465930 [01:12<00:00, 6445.29it/s] Epoch: 05, Loss: 0.3326, Train: 0.9547, Val: 0.9535, test: 0.9511
Epoch: 06, Loss: 0.3162
Epoch: 07, Loss: 0.3051
Epoch: 08, Loss: 0.2853
Epoch: 09, Loss: 0.2762
Evaluating: 100%|██████████| 465930/465930 [01:12<00:00, 6421.35it/s] Epoch: 10, Loss: 0.2708, Train: 0.9665, Val: 0.9582, test: 0.9569
Epoch: 11, Loss: 0.2643
Epoch: 12, Loss: 0.2548
Epoch: 13, Loss: 0.2565
Epoch: 14, Loss: 0.3254
Evaluating: 100%|██████████| 465930/465930 [01:12<00:00, 6440.26it/s] Epoch: 15, Loss: 0.2794, Train: 0.9649, Val: 0.9540, test: 0.9530
Epoch: 16, Loss: 0.2477
Epoch: 17, Loss: 0.2453
Epoch: 18, Loss: 0.2399
Epoch: 19, Loss: 0.2358
Evaluating: 100%|██████████| 465930/465930 [01:12<00:00, 6406.07it/s] Epoch: 20, Loss: 0.2392, Train: 0.9627, Val: 0.9476, test: 0.9469
Epoch: 21, Loss: 0.2238
Epoch: 22, Loss: 0.2201
Epoch: 23, Loss: 0.2245
Epoch: 24, Loss: 0.2143
Evaluating: 100%|██████████| 465930/465930 [01:12<00:00, 6435.50it/s] Epoch: 25, Loss: 0.2197, Train: 0.9692, Val: 0.9520, test: 0.9515
Epoch: 26, Loss: 0.2148
Epoch: 27, Loss: 0.2089
Epoch: 28, Loss: 0.2074
Epoch: 29, Loss: 0.2115
Evaluating: 100%|██████████| 465930/465930 [01:11<00:00, 6477.92it/s] Epoch: 30, Loss: 0.2092, Train: 0.9737, Val: 0.9569, test: 0.9540