Class,numpy,数据集文件:TypeError:'dict'对象不可调用

问题描述 投票:0回答:1

是编程和尝试学习OOP和ML的新手。是的,同时接受这两个概念是一场艰巨的斗争,但却是令人愉快的。我遇到了此错误,不确定如何解决。

class DataInputOutput:
    def __init__(self, inputData, outputData):
        self.input = inputData
        self.output = outputData


class DTModel:
    def __init__(self, dataSetFile):
        dataset = arff.load(open(dataSetFile, 'r'))
        data = np.array(dataset['data'])

        inputs = data[:, :-1]  # All feature inputs except the last col
        outputs = data[:, -1]  # Last col of array which is the feature result

        trainInputs = inputs[:6000]  # First 6000 is training
        self.trainOutputs = outputs[:6000]
        self.trainingDataSet = dataset(inputData=trainInputs, outputData=self.trainOutputs)

输出:self.trainingDataSet = self.dataset(inputData=trainInputs, outputData=self.trainOutputs) TypeError: 'dict' object is not callable

我正在阅读此thread,并且线程都一样。我尝试过进行如下更改:

dataset(inputData=[trainInputs], outputData=[self.trainOutputs] # adding brackets, "dict not callable" still occurs

我尝试进行的其他更改导致Pycharm错误“无法解析的引用”。喜欢做:

= [dataset[inputData(trainInputs)] .... # inputData unresolved reference

我尝试进行的其他任何更改,Pycharm都会突出显示整行。也许我编辑的行错误,应该在datasetdata中进行更改吗?

完整回溯:

Traceback (most recent call last):
File "./train1.py", line 81, in <module>
loaddata = DTModel("mydataset.arff")
File "./train1.py", line 31, in __init__
self.trainingDataSet = dataset(inputData=trainInputs, 
outputData=self.trainOutputs)
TypeError: 'dict' object is not callable
python python-3.x oop typeerror
1个回答
0
投票

您抱怨将dict分配给数据集然后尝试

self.trainingDataSet = dataset( ... )

产生一个诊断,指示不能调用dict。Carcigenicate非常好心,可以解释为您可能要调用此构造函数:

self.trainingDataSet = DataInputOutput( ... )
© www.soinside.com 2019 - 2024. All rights reserved.