首页 > 解决方案 > 如何在这段代码中调用 get_data 函数

问题描述

我是使用 python 的新手,我想运行这段代码,

from torch_geometric.datasets import Planetoid
from torch_geometric.data import DataLoader

class Preprocess():
    def __init__(self, config, d_name):
       self.root_dir = config.root_dir
       self.batch_size = config.batch_size
    
       self.cora = Planetoid(root='./data/cora', name='Cora')
       #self.citeseer = Planetoid(root='./data/citeseer', name='CiteSeer')
       #self.pubmed = Planetoid(root='./data/pubmed', name='PubMed')
    
       self.num_classes, self.num_node_features, self.data = self.get_data(d_name)
    
    def get_data(self, d_name):
        '''
        d_name = 'Cora', 'CiteSeer', 'PubMed'
        '''
        dataset = Planetoid(root=self.root_dir + d_name , name=d_name)
    
        return dataset.num_classes, dataset.num_node_features, DataLoader(dataset, batch_size 
        = self.batch_size)
f=Preprocess(config, Cora)
f.get_data(Cora)

但收到此错误:未定义名称“配置”

标签: pythonfunctionclass

解决方案


所以,这不是一个错误。

看看你的构造函数:

def __init__(self, config, d_name): 
    self.root_dir = config.root_dir 
    self.batch_size = config.batch_size 
    
    etc... 

你的实例化:

f = Preprocess(config, Cora) 
f.get_data(Cora) 

请注意,您正在传递一个以前未声明过的变量“config”。此外,通过构造函数中的 arg“config”类型,您需要将对象作为参数传递给实例化“f = Preprocess(args)”,因为 arg“config”需要具有“root_dir”属性。

请查看 Pytorch 文档以获取有关如何使用此框架的更多示例。不要放弃,你可以做到的。


推荐阅读