组队学习-图神经网络 Taks 05

pytorch中dataloader的num_workers参数 结论速递 在Windows系统中,num_workers参数建议设为0,在Linux系统则不需担心。 1 问题描述 在之前的任务超大图上的节点表征学习中,使用PyG库用于数据加载的DataLoader,ClusterLoader等类时,会涉及到参数num_workers。在不同系统环境试验该参数的设定值时,会出现不同的结果 colab(Linux),设为12 有warning message,提示num_workers参数设置不合理,不影响继续运行 /usr/local/lib/python3.7/di 阅读详情

尝试将数据集切分成不同数量的簇进行实验,然后观察结果并进行比较。

分别设置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

pytorch实现resnet18(CIFAR10数据集,92%的准确率) 阅读详情

相关推荐

pytorch geometric教程四 利用NeighorSampler实现节点维度的mini-batch + GraphSAGE样例

pytorch geometric如何实现节点维度mini-batch模型训练: NeighorSampler PyG的官方文档中有mini-batch和Advanced mini-batching两部分内容,但实现的都是图维度的mini-batch。如何像GraphSAGE文章中对邻居进行采样从而实现节点维度mini-batch模型训练,使得大规模全连接图的GNNs模型训练成为可能,在PyG中是通过torch_geometric.Loader.NeighborSampler实现的(早一点版本是torch_

weixin_39925939的博客 9156

解决问题:AssertionError: Torch not compiled with CUDA enabled

今天在运行程序的时候突然遇到这个问题,就查资料解决了一下。 原因: 要在没有GPU的电脑上使用GPU使用.cuda()语句 解决办法: 第一步:在代码开始的地方加上一行代码 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") #注意符号要是英文的 第二步:将所有的cuda()换成to(device),可以使用替换方式进行(按CTRL+R就可以替换) #model.cuda() 原来 model.to(device)

llvtingting的博客 3276

【Kaggle竞赛树叶分类Baseline】上万片树叶分为一百七十六类

【Kaggle竞赛树叶分类1】https://www.kaggle.com/c/classify-leaves 任务是预测叶子图像的类别。该数据集包含 176 个类别、18353 张训练图像、8800 张测试图像。每个类别至少有 50 张图像用于训练。测试集平均分为公共和私人排行榜。本次比赛的评估指标是分类准确度。本章的内容是介绍Baseline。下一章将介绍提升分类准确度的tricks和模型 环境:将使用google colab pro作为代码运行和云服务器平台。 #先分配GPU !nvidia-smi

jianhunhenbaqi的博客 8832

Kaggle运行报错排查

Kaggle报错,没有勾选Internet选项

horsetaill的博客 2081

【pytorch】学会pytorch dataloader数据加载(一)

DataLoader Dataloader可以将自己的数据装换成Tensor,然后有效的迭代数据。可以很有效的简化数据的读取过程,方便炼丹。 一、 首先介绍一个简单的例子: 加载头文件: import torch import torch.utils.data as Data torch.manual_seed(1) 生成torch数据 x = torch.linspace(1, 10,...

Shwan_ma的博客 1万+

新手必看!Unity中Tag和Layer的7个实际应用场景(含MOBA案例)

本文深入探讨Unity中Tag和Layer的7个实际应用场景,特别以MOBA游戏开发为例,详细解析如何利用LayerMask进行高效场景管理和碰撞检测优化。从双相机方案到射线检测的精准控制,帮助开发者掌握这些基础功能的进阶用法,提升游戏性能和开发效率。

weixin_28723171的博客 313

wsl子系统问题

有关windows11的wsl2的ubuntu子系统运行程序遇到的问题,ubunntu18.04也可以使用

m0_54720387的博客 7878

lumerical中DEVICE和MODE模块的交互使用(真的很干货!!可以自信的说网上绝对找不到比我更详细的步骤了)

几个脚本文件很重要! Lumerical仿真流程: 一、DEVICE: (1).建模并且运行完之后,在脚本提示符下键入以下脚本行以运行plotDopingProfile.lsf如图1(文件名如果索引不到的话就可以把文件直接用notepad++打开,然后把代码直接输入到device中script脚本中 如图2)脚本文件并生成下图 如图3: (图2) (图1) (图3) (2).仿真...

1万+

复现Aleth-NeRF

由于把.path文件手动复制过去,报错可以忽略了,epoch2忘记截图了,运行。如果还报显存错再成倍减小batch_size,运行到一半又报错。出现新错误(猜测应该是杀死进程的时候把firfox杀死的原因)由于运行buu,目前改buu相关的batch_size就可以。直接自动进入epoch0 epoch2 epoch3了。依然报显存错,而且每次都是迭代到12500的时候报错。把前面的警告解决num_workers。重新把进程打开,杀死不必要的进程。将下载好的.pth手动复制过去。连接问题(该方法没用)

weixin_53765004的博客 1014

深度解析跨境支付之业务架构

详解跨境支付之业务架构

weixin_47493863的博客 1878

数据分析学习总结笔记02:聚类分析及其R语言实现

** 数据分析学习总结笔记02:聚类分析Cluster Analysis ** 1. 聚类分析概述 1.1 聚类分析的直观理解 在科学研究、社会调查或日常生活中,通过观察个体的特征,将群体中的个体归为不同的族群/簇(Cluster)。 2. 聚类分析的方法 3. 聚类分析的应用 3.1 市场营销——精准营销 在市场营销中,基于消费者的历史交易信息、消费者背景等对消费者进行划分,从而对不同类型的消费...

weixin_41961559的博客 4420

天池广东工业智造大数据创新大赛 铝型材表面瑕疵识别 top1 初赛方案 踩坑

报错: torch.tensor(images).cuda(async=True) SyntaxError: invalid syntax 解决方法: # 将图片和标签转化为tensor image_var = torch.tensor(images).cuda(non_blocking=True) label = torch.tensor(target).cuda(non_blocking=True) 模型下载比较慢,可以提前下载: http://data.lip6.fr/cadene/pre.

Drmon.的博客 1914

【教程4>第1章>第11节】使用MATLAB快速产生批量verilog语句加快FPGA开发

...........如果手动写,那么就非常麻烦,这个时候,我们借助matlab,则可以快速生成上述类型的verilog程序,我们编写如下的MATLAB语句。\n");\n");end。

FPGA/MATLAB学习教程/源码/项目合作开发 1241

pytorch 多线程推荐数值This DataLoader will create 40 worker processes in total. Our suggested max number

百度aistudio 经过测试。

AI 前沿技术实战博客:LLM / Agent / AI 制药 / 生信四大栏目日更,硬核干货 + 可复现代码,看完就能上手 552

Luma AI技术浅析(一)

是一款基于人工智能的3D内容生成平台,旨在通过深度学习技术实现高效、高质量的3D场景、物体和动画的生成。Luma AI 主要利用了等技术,以实现从图像、视频到3D模型的转换和生成。

m0_75253143的博客 1728

基于STM32设计的万能红外遥控器(学习型)

当前介绍了一种基于STM32微控制器设计的红外遥控器,支持接收解码功能和发送功能,可以将接收的码原样发送出去。 红外遥控器作为智能设备控制方式之一,在一定程度上满足了人们对于快速方便控制的需求。 当前设计的红外遥控器支持学习模式和发送模式。通过矩阵键盘上的数字键选择发送对应的控制码。 一共支持学习10个控制码,对应矩阵键盘上的数字。0~9。

6559

PyTorch开始使用的一些问题

pytorch 首次使用时,可能会遇到的一些问题及解决方法

bjay的专栏 2997

cursor AI代码编辑器IDE对接deepseek模型api;字节ai编辑器trae

参考: https://www.cursor.com/ https://platform.deepseek.com/https://www.cursor.com/下载安装后,注册账号登录即可 再高级里选择设置 再模型这注册模型: 模型名称一定要填正确,url地址填好,最后填上秘钥验证

weixin_42357472的博客 1万+

GNN PyG~torch_geometric 学习理解

其中EdgeIndex(edge_index=tensor([[1, 2], [0, 0]]), e_id=tensor([10, 2]), size=(3, 1))是第一层采样得到的bipartite图, EdgeIndex(edge_index=tensor([[2, 3, 0, 3, 0, 4], [0, 0, 1, 1, 2, 2]]), e_id=tensor([2, 8, 6, 9, 4, 0]), size=(5, 3))是第二层采样得到的bipartite图。

惟天有汉,故国有明的博客 1743

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

GNN学习5:超大图上的节点表征学习

超大图上的节点表征学习 参考资料: 论文Cluster-GCN: An Efficient Algorithm for Training Deep andLarge Graph Convolutional Network team-learning-nlp 图神经网络在超大图上进行图神经网络的训练仍然具有挑战。普通的基于SGD的图神经网络的训练方法存在两个问题 随着图神经网络层数增加,计算成本呈指数增长的问题, 保存整个图的信息和每一层每个节点的表征到内存(显存)而消耗巨大内存(显存)空间的问题。 虽然

lukem44的博客 499

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

pytorch使用过程中遇到的警告

1、UserWarning: invalid index of a 0-dim tensor. This will be an error in PyTorch 0.5. Use tensor.item() to convert a 0-dim tensor to a Python number #原语句: train_loss+=loss.data[0] #修改后: train_lo...

legalhighhigh的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

PyTorch踩过的12坑 | 优快云博文精选

2019-11-12 18:35:19 作者 | hyk_1996 来源 | 优快云博客 1. nn.Module.cuda 和 Tensor.cuda 的作用效果差异 无论是对于模型还是数据,cuda函数都能实现从CPU到GPU的内存迁移,但是他们的作用效果有所不同。 对于nn.Module: model = model.cuda model.cuda 上面两句能够达...

喜欢打酱油的老鸟 762

关于pytorch中Dataloader使用参数num_workers报错的原因

未将主运行程序放在if __name__ == '__main__':之下导致调用出错 而dataloader本质上是使用多进程来进行程序的加速,而python在调用多进程程序时如果不将主程序加入if __name__ == '__main__':下,子线程就会无限调用多线程程序,导致最后程序崩溃,因此要加入if __name__ == '__main__':进行声明。 ...

bug永流传 4561

PyTorch1.0中的Dataloader

注:以下代码基于PyTorch1.0 前面我们说到Dataset,是打包了数据地址、规模和其他的一些非必需功能,让Dataloader来调用。本文我们通过Dataloader的源码来看下原始数据是如何夹在到模型之中的。 def __init__(self, dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=N...

玄云飘风的博客 2395
上一篇: 组队学习-图神经网络 Taks 04
下一篇: 组队学习-图神经网络 Taks 06
shell
博客等级 码龄16年 25粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值