作者:豆豆豆 | 来源:互联网 | 2023-09-13 10:40
processed_paths写处理所有graph过后所存的路径,道理同raw_file_namesprocess处理数据,成规定格式。一下内容可以在Data.py里面找到内容,我
前言博客大部分是运送文档的,是文档的翻译版,不太有趣。 详细内容要结合文件来看。
这是大致概念,不至于浏览文档头昏眼花,不是手把手教你
文档:
3359 py torch-geometric.readthedocs.io/en/latest/notes/introduction.html
血液数据集有两种,一种是只存一个图的ImMemory类型,另一种需要存多个图DataSet,需要额外实现len和get函数。
ImMemory基本上是从官方网站开始实现的:
importtorchfromtorch _ geometric.dataimportinmemorydatasetclassmyowndataset (inmemorydataset ) 360 def _ _ init _ (pre self.slices=torch.load (self.processed _ paths [0] ) propertydefraw_file_names ) self ) :return['sorn] . @ propertydefprocessed _ file _ names (self ) : return [ ' data.pt ' ] defdownload (self ) :#downloadto ` ) readdataintohuge ` data ` list.data _ list=[ . ] if self.pre _ filterisnotnone : data _ list=[ datafordatataindata if self.pre _ transformisnotnone : data _ list=[ self.pre _ transform (数据) for data in data_list] data,slices slices ),self.processed_paths[0] )另一个只能在继承类处更改为torch
deflen(self ) : return len (self.processed _ file _ names ) defget ) self,idx ) :数据=torch.load ) OSP.Joad ' data_{}.pt'.format(idx ) ) (返回数据函数名称用途download编写如何获取原始数据集。 自定义数据集通常位于本地。 它可以直接成为passreturnraw _ file _ NNA set。processed _ paths在处理所有graph后写下保存的路径,道理是raw_file_namesprocess处理数据规定的什么格式? 名为from torch _ geometric.dataimportdata的数据类型是要处理的格式。
以下内容可以在Data.py中找到,但我会大致提及。
人必须具有的属性如下。
y:标签是的。 可以直接给one hot,也可以给数字型。 x:节点属性edge_index:边关系有多种类型,如(id,id )列表和邻接表。 哪个都可以。
处理完以上数据后,直接# contiguous这需要以(id,id )的方式添加的graph=data ) x=features,edge_index=network.t ).contiguous
但是,也可以添加其他属性。 直接加在他后面就行了。
# train _ idx train _ idx=torch.tensor ([ id2inter _ id [ idx ] foridxinherb _ with _ label _ id ],dtype=torch eded 这些会直接出现。 processed存储运行process函数后的数据,raw是原始数据。
函数的执行首先是调用参数root路径下不存在raw和processed两条路径,raw中不存在raw_paths给出的raw data,如果不存在则调用down_load函数进行下载
要避免download,请确保原始文件中始终存在您的原始路径返回的文件名。
现在举个例子:
假设我使用一个名为现有的AMiner的数据集。 但是数据是dropbox的,不能在网上使用。 手动下车后使用。
首先,确定此数据集位于何处。 然后,在此目录中创建新的dir AMiner,并在AMiner下创建新的原始和处理。 图:
访问源代码,查看所需的原始数据。
然后,在download函数中,找到并下载(并解压缩) url,然后将其放入http://www.Sina.com/raw的该目录中。 http://www.Sina.com/: http://www.Sina.com /
剩下的就可以直接使用了。 处理函数也将数据存储在处理中。 省略详细说明。
我想不经过处理就直接加载到内存中进行保存,但这还不会继续。
最后我给你一个我自己用的例子。 importtorchimportpicklefromtorch _ geometric.dataimportinmemorydataset,dataclasstcmdataset (inmemorydataset )。 根,name,feature_size,transform=None, pre _ transform=none (: self.feature _ size=feature _ size print (f ' featuresize 3360 { feature _ size } ' } suru se ) self.slices=torch.load (self.processed _ paths [0] ) propertydefraw_file_0) (propertydefraw ) )。 ] @ propertydefprocessed _ file _ names (self ) : return ['tcm_dataset.pt ',]defdownload(self ) 3360passdef y edge_index=network.t ).contiguous )、y=labels (train _ idx=torch.tensor ) [ id2inter _ id [ idx ] foridxinhion dype=torch.long(#新属性graph.train _ idx=train _ idxifself.pre _ filterisnotnone 3360 graph=[ datafordatataingraph if self.pre _ transformisnotnone : graph=[ self.pre _ transform (data ) for data in graph] data,slices=self.coll