FighterLYL / GraphNeuralNetwork

《深入浅出图神经网络:GNN原理解析》配套代码
1.7k stars 457 forks source link

Unpicklingerror: invalid loadkey,' \ x0a' #50

Closed wl15321115635 closed 3 years ago

wl15321115635 commented 3 years ago

cora数据集下载保存到本地D:\GraphNeuralNetwork-master\chapter5\cora\raw,当运行第五章代码# In[7]:# 加载数据,并转换为torch.Tensor时出现下列问题:

UnpicklingError Traceback (most recent call last)

in ----> 1 dataset = CoraData().data 2 x = dataset.x / dataset.x.sum(1, keepdims=True) # 归一化数据,使得每一行和为1 3 tensor_x = torch.from_numpy(x).to(device) 4 tensor_y = torch.from_numpy(dataset.y).to(device) 5 tensor_train_mask = torch.from_numpy(dataset.train_mask).to(device) in __init__(self, data_root, rebuild) 16 else: 17 self.maybe_download() ---> 18 self._data = self.process_data() 19 with open(save_file, "wb") as f: 20 pickle.dump(self.data, f) in process_data(self) 32 print("Process data ...") 33 _, tx, allx, y, ty, ally, graph, test_index = [self.read_data( ---> 34 osp.join(self.data_root, "raw", name)) for name in self.filenames] 35 train_index = np.arange(y.shape[0]) 36 val_index = np.arange(y.shape[0], y.shape[0] + 500) in (.0) 32 print("Process data ...") 33 _, tx, allx, y, ty, ally, graph, test_index = [self.read_data( ---> 34 osp.join(self.data_root, "raw", name)) for name in self.filenames] 35 train_index = np.arange(y.shape[0]) 36 val_index = np.arange(y.shape[0], y.shape[0] + 500) in read_data(path) 92 return out 93 else: ---> 94 out = pickle.load(open(path, "rb"), encoding="latin1") 95 out = out.toarray() if hasattr(out, "toarray") else out 96 return out UnpicklingError: invalid load key, '\x0a'.
FighterLYL commented 3 years ago

我没有复现你的问题, 怀疑可能是文件不完整. 你拉取下最新代码, 我更新了代码直接使用仓库中的数据. 另外检查下你下载的数据文件的md5值:

c9083193a57057dd1238321e140194d7 ind.cora.allx
125d70817fe1fdbfdcad991995e81579 ind.cora.ally
b37c419cec179f45834467630c278e4c ind.cora.graph
9b822cae1d01f41e8bf8782e20367c0e ind.cora.test.index
b29c36916768e1d2f55391c1aa9317ac ind.cora.tx
48bf43f54fa5b86089a4bd0299795f10 ind.cora.ty
190831eee19d8f330d89d94b40a65c5a ind.cora.x
78344284e3ff7fd24eb9c307d51351eb ind.cora.y
wl15321115635 commented 3 years ago

更新后的代码可以运行出结果,万分感谢!