【问题标题】:how to calling get_data function in this code如何在这段代码中调用 get_data 函数
【发布时间】:2021-12-02 03:40:55
【问题描述】:

我是 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)

但出现此错误:未定义名称“配置”

【问题讨论】:

  • 在给定的代码中,您永远不会初始化或导入任何名为config的值
  • class config(): #Preprocess`root_dir = ./data/``batch_size = 1``#Model`hidden_dim = 16 `dropout_rate = 0.5``l2_reg = 5*10e-4``#训练``learning_rate = 0.01`epochs = 200loss_type = 'cross_entropy' # or nll_loss@joshmeranda

标签: python function class


【解决方案1】:

所以,这不是错误。

看看你的构造函数:

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 文档以获取有关如何使用此框架的更多示例。不要放弃,你可以做到的。

【讨论】:

    猜你喜欢
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 2021-09-30
    • 1970-01-01
    • 2022-11-14
    • 2017-01-14
    相关资源
    最近更新 更多