Предположим, у меня есть график networkx, и я хочу преобразовать его в набор данных в pytorch_geometri c и использовать его с загрузчиком данных для пакетной обработки. Я попробовал это, но получил некоторую ошибку. Вот код:
import networkx as nx
import torch
import numpy as np
import pandas as pd
from torch_geometric.utils.convert import from_networkx
from torch_geometric.data import DataLoader
from torch_geometric.data import InMemoryDataset
class dataConverterAnjan(InMemoryDataset):
def __init__(self, root, transform=None, pre_transform=None):
super(dataConverterAnjan, self).__init__(root, transform, pre_transform)
self.data, self.slices = torch.load('../a.txt')
@property
def raw_file_names(self):
return []
@property
def processed_file_names(self):
return []
def download(self):
pass
def process(self):
originalGraph = nx.path_graph(10)
data = from_networkx(originalGraph)
data_list = []
data_list.append(data)
data, slices = self.collate(data_list)
torch.save((data, slices), '../a.txt')
dataset = dataConverterAnjan('../')
loader = DataLoader(dataset, batch_size=3, shuffle=True)
Вот ошибка:
Traceback (most recent call last):
File "pyGeomTest.py", line 36, in <module>
dataset = dataConverterAnjan('../')
File "pyGeomTest.py", line 13, in __init__
self.data, self.slices = torch.load('../a.txt')
File "/home/anjan/.local/lib/python3.6/site-packages/torch/serialization.py", line 529, in load
return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "/home/anjan/.local/lib/python3.6/site-packages/torch/serialization.py", line 692, in _legacy_load
magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: unpickling stack underflow