- 博客(51)
- 收藏
- 关注
原创 classification metrics:分类任务常用指标accuracy,macrof1,weightedf1的python实现
sklearn实现Classification metrics
2022-07-26 06:48:41
1009
1
原创 CONDA虚拟环境下GPU加速pytorch程序大坑记录!
大坑:前几天在服务器上的虚拟环境上使用gpu同时运行两个处理大数据集的程序,结果跑着跑着突然中断。原因很玄幻,是虚拟环境下的与运行的程序相关的包丢失了:pytorch,dgl等等都丢失了。而在程序刚开始运行时候这些包都存在。直接原因及推测根本原因:直接原因是两个程序在同一anaconda建立的虚拟环境下运行。推测根本原因因为程序要处理的数据集很大,会占用大量cpu和gpu空间,在同一虚拟环境下运行会导致冲突?只是推测,如果有知道的朋友欢迎告诉我具体原因解决方案:只需要建立两个相同配置的虚拟环境,
2021-04-22 10:01:16
551
原创 DGL获得adj,edge_list
DGL有内置函数adglgraph.adj可以获得adjmatrix,但问题是adjmatrix是sparse.tensor格式,无法直接调用我们想要的adj:u=[0,0,0,1]v=[1,1,2,2]graph=dgl.DGLGraph((u,v))print('graph',graph)adj=graph.adjacency_matrix(transpose=True)print('adj',adj)>>>graph DGLGraph(num_nodes=3, num_
2021-03-16 13:02:51
2826
1
原创 pytorch 矩阵运算实现“笛卡尔加”
问题定义见下图:给定A,B,求A“笛卡尔加”B(笛卡尔加类似于笛卡尔积,只是在合并时做了加法运算)用for语句解决这个问题当然非常简单,但是for的性能损失太大(我在神经网络里,分别用for和矩阵运算实现了“笛卡尔加”,最终for的时间开销为8h+,矩阵运算为5min+),记录一下怎么用矩阵运算解决:step扩充A,B为(3,3,4)维度,得到_A , _B._A=([A1,A2,A3],[A1,A2,A3],[A1,A2,A3]) _B同理。将_A的前两维转置后+_B即可得到AB的“笛卡尔加”
2021-01-11 16:38:25
1300
2
原创 pytorch loss.item()大坑记录(非常重要!!!)
跑神经网络时遇到的大坑:代码中所有的loss都直接用loss表示的,结果就是每次迭代,空间占用就会增加,直到cpu或者gup爆炸。解决办法:把除了loss.backward()之外的loss调用都改成loss.item(),就可以解决。原理可以见这里:https://www.zhihu.com/question/67209417/answer/344752405...
2021-01-11 16:15:57
21044
原创 用tensor创建tensor
用两个长度相同的一维tensor(x,y),生成一个新的二维tensor(z),使z的第一行即x,第二行为y:代码中的edge_index_pattern即z,dataset[“pattern”].edges(form=‘uv’)[0]即x,dataset[“pattern”].edges(form=‘uv’)[1]即y由于不能直接使用tensor,所以需要先将tensor转为list即可 edge_index_pattern=torch.tensor([dataset["pattern"].e
2021-01-04 17:01:14
635
原创 Ubuntu下安装Microsoft Teams
先登录官网:https://www.microsoft.com/en-us/microsoft-365/microsoft-teams/download-app#allDevicesSection下载DEB包。下载完成后,在DEB包目录下执行命令:sudo dpkg -i teams_1.3.00.30857_amd64.deb[sudo] starlien 的密码: 正在选中未选择的软件包 teams。(正在读取数据库 ... 系统当前共安装有 358741 个文件和目录。)正准备解包 tea
2020-12-28 11:39:24
5470
原创 生成有feature的pattern-graph数据集
如果完全仿照generate_label的方式生成feature:def generate_features(number_of_items, feature_dim, num_of_features):#考虑cora数据集,num_of_features代表一个维度里features有几个可选值(从0开始,例如:0,1,2...),feature_dim代表feature有几个维度 features = np.zeros([number_of_items,feature_dim],dtype=i
2020-12-26 19:10:34
790
1
原创 Can Graph Neural Networks Count Substructures复现实验记录
相比上一篇Nerual Subgraph Isomophism Counting的实验说明,这篇文章的实验说明很不详细,这里只关注subgraph部分,也就是synthetic文件夹下的代码,记录下复现过程:记录data文件夹中本来是没有lrp_save_path文件夹的,需要手动建立(这个代码里没有建立文件夹的代码)。还需要在synthetic文件夹下建立save_model和results文件夹。然后运行main_synthetic.py即可。...
2020-12-21 14:39:46
396
原创 Neural Subgraph Isomorphism Counting复现记录
train.py:2020/12/19 16:28:17: [ data_type: train best mean loss: 401.561 (epoch: 050) ]2020/12/19 16:28:17: [ data_type: dev best mean loss: 236.555 (epoch: 073) ]2020/12/19 16:28:17: [ data_type: test best mean loss: 267.581 (epoch: 045) ]
2020-12-19 17:10:38
274
1
原创 Ubuntu 服务器上传和下载文件
https://hellowoodes.blog.youkuaiyun.com/article/details/79881168?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control
2020-12-19 14:48:15
568
1
原创 igraph.plot()的TypeError: plotting not available解决方法
见这篇https://blog.youkuaiyun.com/abc15766228491/article/details/88719103
2020-12-17 11:40:09
1225
原创 Neural Subgraph Isomorphism Counting学习笔记
Neural Subgraph Isomorphism Counting -- KDD2020问题定义解决方案Graph ModelDynamic Intermedium Attention Memory合成数据用GNN来做子图同构统计的第一篇论文,需要关注的点主要在问题定义、合成数据、寻找同构的网络这三点上。问题定义给定一个小图(pattern)和一个大图(graph),统计graph中与pattern同构的子图数量。用GNN来做的优势在于能够在可接受的误差范围内以更快的速度解决这个问题。解决方
2020-12-16 17:58:26
727
原创 Graph Embedding预处理:对图中部分节点进行训练
Graph Embedding优化:只对目标节点进行训练原理代码创建子图代码main代码(以gcn为例)其实我们在训练时候,并不需要将整个图都扔进神经网络进行训练,因为需要的只是训练集中的train_mask节点,将整个图都进行训练其实浪费了很多的时间空间复杂度,所以我们可以预先离线抽取出我们需要的目标节点及在计算中需要用到的n级邻居节点,然后再进行训练,可以节省很多的时空复杂度。原理无论是GCN还是GAT,每层网络本质上的工作就是以某种方式将节点特征及其邻居的特征加到一起获得一个新的特征值。每多加一
2020-12-08 15:34:03
594
原创 GAT学习:PyG实现GAT(自定义GAT层)网络(四)
PyG实现自定义GAT层完整代码代码分析本系列中的第三篇介绍了如何调用pyg封装好的GAT函数,当然同样的,对于科研需求,我们同样需要学会如何自定义网络层以满足研究需求。完整代码import torchimport mathfrom torch_geometric.nn import MessagePassingfrom torch_geometric.utils import add_self_loops,remove_self_loops,softmaxfrom torch_geometr
2020-12-01 15:39:41
2940
1
原创 GAT学习:PyG实现GAT(使用PyG封装好的GATConv函数)(三)
之前我的实现方式相对而言麻烦且准确率不够好,只能达到65%左右的准确率(Cora上),这里介绍直接用PyG封装好的GAT函数实现:import torchimport mathfrom torch_geometric.nn import MessagePassingfrom torch_geometric.nn import GATConvfrom torch_geometric.utils import add_self_loops,degreefrom torch_geometric.da
2020-11-12 16:57:01
12509
15
原创 GAT学习:PyG实现multi-head GAT(二)
PyG实现GAT网络接上篇学习笔记GAT学习:PyG实现GAT(图注意力神经网络)网络(一)为了使得Attention的效果更好,所以加入multi-head attention。画个图说明multi-head attention的工作原理。
2020-10-23 14:50:45
3341
3
原创 GAT学习:PyG实现GAT(图注意力神经网络)网络(一)
PyG实现GAT网络预备知识代码分析完整代码GAL层目前PyG的教程几乎都是教怎么实现GCN的,但关于实现GAT的没找到PyG的实现,基本都是Pytorch。Paper需要,学习了GAT,为了保证和GCN用同一框架实现,所以用PyG实现了GAT,这里记录下来,用PyG搭建了GAT网络。预备知识1.GAT的原理移步这里向往的GAT,介绍的很详细。2.PyG的基本操作移步这几篇:GCN学习:Pytorch-Geometric教程(一)GCN学习:Pytorch-Geometric教程(二)GCN学
2020-10-23 13:43:31
11022
5
原创 GCN学习:用PyG实现自定义layers的GCN网络及训练(五)
目前的代码讲解基本都是直接使用PyG内置的包实现固定结构的网络层。虽然我们可以通过每层使用不同的传递方式来建立不同的网络,但是却不能自定义网络层的传递方式,对于做创新性的研究工作而言是一个不足。本篇在GCN学习:Pytorch-Geometric教程(二)的基础上,自定义了GCN的层传递方式(仍然是按照论文中的传递方式建立,但是我们以后也可以建立其他传递方式),其他代码与系列(二)的代码相同。完整代码如下import torchfrom torch_geometric.nn import Messa
2020-10-18 11:29:19
3148
3
原创 GCN学习(四):使用numpy从底层一步步搭建GCN网络:Zachary数据集随机参数无训练实战
Zachary 空手道俱乐部是一个被广泛使用的社交网络,其中的节点代表空手道俱乐部的成员,边代表成员之间的相互关系。当年,Zachary 在研究空手道俱乐部的时候,管理员和教员发生了冲突,导致俱乐部一分为二。下图显示了该网络的图表征,其中的节点标注是根据节点属于俱乐部的哪个部分而得到的,「0」表示属于Mr. Hi部分的中心节点,[32」表示属于Officer阵营的中心节点通过networkx调用karate club图import networkx as nximport numpy as np#
2020-10-16 10:04:52
1020
2
原创 GCN学习(三):使用numpy从底层一步步搭建GCN网络:网络传播实现
关于GCN的基础原理见图卷积神经网络(GCN)。GCN的传递公式:首先我们需要掌握的就是D波浪A波浪的代码实现方法。(参考这篇文章)先建立这个图的邻接矩阵:#建立邻接矩阵A = np.matrix( [[0, 1, 0, 0], [0, 0, 1, 1], [0, 1, 0, 0], [1, 0, 1, 0]], dtype=float)#建立对角线矩阵I=np.eye(A.shape[0])...
2020-10-15 12:33:39
1029
1
原创 MAML学习笔记
了解到meta learning有一种打开了新世界大门的感觉。记录一下Model-Agnostic Meta Learning这篇论文的学习笔记,以便日后自己温习。已经有两篇写的非常详细清晰的文章,参考这两篇即可:1.先了解few shot learning 和meta learning的主要解决思路:Few-shot learning(少样本学习)和 Meta-learning(元学习)概述2.MAML: Model-Agnostic Meta-Learning for Fast Adaptati
2020-10-13 14:48:42
418
原创 Meta Learning学习(一)
要开展meta learning的相关工作,从0肝起,记录下来。概念Meta Learning称为元学习,云里雾里的名字,看了名字根本不知道这是干嘛的。但通俗的理解就是learning to learn,学会学习,目标就是为了让机器学会如何去学习,快速完成学习任务。近年的热门ai的发展历程可以认为是:deep learning -> reinforcement learning -> meta learning。deep learning的代表就是cnn rnn这些现在看来已经有更好上位
2020-10-09 11:50:42
201
原创 Transfomer完整学习笔记一:Encoder-Decoder,Seq2Seq
最近常看到transformer框架下的论文,且知道transformer势头大盛,但对transformer缺乏了解,所以就记录下关于transformer的完整学习过程,从最基本的部分开始学习这里做以记录。Encoder-Decoder,Seq2Seq什么是seq2seq& encoder-decoderEncoderDecoder本篇学习笔记主要参考这篇blog什么是seq2seq& encoder-decoder常见的应用场景为nlp问题。以机器翻译为例:英语输⼊:“The
2020-10-09 11:15:25
612
原创 GCN学习:Pytorch-Geometric教程(二)
PyG教程二数据转换图上的学习方法数据转换PyTorch Geometric带有自己的变换,该变换期望将Data对象作为输入并返回一个新的变换后的Data对象。 可以使用torch_geometric.transforms.Compose将变换链接在一起,并在将处理后的数据集保存到磁盘之前(pre_transform)或访问数据集中的图形之前(transform)应用变换。让我们看一个示例,其中我们对ShapeNet数据集(包含17,000个3D形状点clouds和来自16个形状类别的每个点标签)应用
2020-09-29 16:55:52
3593
1
原创 ssl.SSLError和urllib.error.URLError解决方式
使用PyG下载数据集的时候出现以下问题from torch_geometric.datasets import ShapeNetdataset = ShapeNet(root='ShapeNet', categories='Airplane')print(dataset[0])>>>ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)>>>url
2020-09-29 10:15:10
512
原创 torch_scatter.scatter详解
scatter方法通过src和index两个张量来获得一个新的张量。torch_scatter.scatter(src: torch.Tensor, index: torch.Tensor, dim: int = - 1, out: Optional[torch.Tensor] = None, dim_size: Optional[int] = None, reduce: str = 'sum') → torch.Tensor原理如图,根据index,将index相同值对应的src元素进行对应定义的计
2020-09-28 17:01:13
14911
6
原创 GCN学习:Pytorch-Geometric教程(一)
基本图变量PyG中的基本图变量为torch_geometric.data.Data,具有以下参数:data.x: Node feature matrix with shape [num_nodes, num_node_features]data.edge_index: Graph connectivity in COO format with shape [2, num_edges] and type torch.longdata.edge_attr: Edge feature matrix w
2020-09-28 16:51:02
5489
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人