You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spektral中citation.load_data()方法不存在报错问题咨询

报错原因

该报错由Spektral版本迭代的API不兼容导致:spektral.datasets.citation.load_data是Spektral 1.0版本之前的旧接口,1.0及之后的版本官方重构了数据集模块的整体设计,移除了这个独立的加载函数,将Cora、Citeseer、Pubmed这类引文基准数据集统一封装为Citation数据集类,因此直接调用旧接口会触发属性不存在的错误。

可行替代方案

新版本中加载Cora数据集的标准实现如下,返回的字段和旧接口完全对应:

from spektral.datasets import Citation

# 初始化并加载Cora数据集
dataset = Citation("cora")
# Cora为单图数据集,直接取索引0即可拿到图结构对象
cora_graph = dataset[0]

# 对应旧接口返回的各变量
adj = cora_graph.a  # 邻接矩阵,默认为稀疏格式,需要稠密格式可调用 adj.todense() 转换
features = cora_graph.x  # 节点特征矩阵
labels = cora_graph.y  # 节点one-hot标签
train_mask = dataset.mask_tr  # 训练集掩码
val_mask = dataset.mask_va  # 验证集掩码
test_mask = dataset.mask_te  # 测试集掩码

额外说明

  • 如果需要按照GCN等经典模型的要求对邻接矩阵做预处理(加自环、对称归一化),可以在初始化数据集时传入transform参数,无需手动计算:
    from spektral.transforms import GCNFilter
    # 加载时自动完成邻接矩阵归一化
    dataset = Citation("cora", transforms=GCNFilter())
    
  • 不建议为了使用旧接口刻意降级Spektral版本,新的类化接口支持更灵活的数据变换、统一的属性访问逻辑,适配所有内置的图神经网络层实现。

内容的提问来源于stack exchange,提问作者playerJX1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:54:28