Python 类,numpy,数据集文件:TypeError:&x27;dict';对象不可调用
刚开始编程并尝试学习OOP和ML。是的,同时学习这两个概念是一个巨大的挑战,也是一种享受。我遇到了这个错误,我不确定如何修复它Python 类,numpy,数据集文件:TypeError:&x27;dict';对象不可调用,python,python-3.x,oop,typeerror,Python,Python 3.x,Oop,Typeerror,刚开始编程并尝试学习OOP和ML。是的,同时学习这两个概念是一个巨大的挑战,也是一种享受。我遇到了这个错误,我不确定如何修复它 class DataInputOutput: def __init__(self, inputData, outputData): self.input = inputData self.output = outputData class DTModel: def __init__(self, dataSetFile)
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”对象不可调用
我在读这本书,读的内容一模一样。我尝试过做出如下更改:
dataset(inputData=[trainInputs], outputData=[self.trainOutputs] # adding brackets, "dict not callable" still occurs
我尝试进行的其他更改会导致Pycharm错误“未解析引用”。例如:
= [dataset[inputData(trainInputs)] .... # inputData unresolved reference
我尝试的任何其他更改,Pycharm都会突出显示整个线条。可能我编辑了错误的行,应该在数据集
或数据
中进行更改
完全回溯:
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
回溯(最近一次呼叫最后一次):
文件“/train1.py”,第81行,在
loaddata=DTModel(“mydataset.arff”)
文件“/train1.py”,第31行,在__
self.trainingDataSet=dataset(inputData=trainInputs,
outputData=自身(列车输出)
TypeError:“dict”对象不可调用
您抱怨将dict
分配给数据集,然后尝试
self.trainingDataSet = dataset( ... )
生成dict不可调用的诊断。
Carcigenicate很友好地解释说,您可能想调用此构造函数:
self.trainingDataSet = DataInputOutput( ... )
dataset
是一个字典。你把它当作DataInputOutput
的构造函数来调用的目的是什么?编写数据集(inputData=trainInputs,outputData=self.trainOutputs)
你想做什么?当发布一个关于产生异常的代码的问题时,总是包括完整的回溯-复制并粘贴它,然后将其格式化为代码(选择它并键入ctrl-k
),我不知道你的最终目标是什么,但似乎您想要self.trainingDataSet=DataInputOutput(inputData=trainInputs,outputData=self.trainOutputs)
@Carcigenicate我的目的是在稍后的另一个类中使用DataInputOutput
,该类将提供各种类型的度量,如训练精度、图形绘制、,等等@JohnSmith那么请看我最后的评论。这好像是个打字错误。