Neural network PyBrain如何解释net.activate的结果?

Neural network PyBrain如何解释net.activate的结果?,neural-network,pybrain,feed-forward,Neural Network,Pybrain,Feed Forward,我已经在PyBrain上训练了一个网络来进行分类,并且准备好用特定的输入进行攻击。然而,当我 classes = ['apple', 'orange', 'peach', 'banana'] data = ClassificationDataSet(len(input), 1, nb_classes=len(classes), class_labels=classes) data._convertToOneOfMany( ) # recommended b

我已经在PyBrain上训练了一个网络来进行分类,并且准备好用特定的输入进行攻击。然而,当我



classes = ['apple', 'orange', 'peach', 'banana']

data = ClassificationDataSet(len(input), 1, nb_classes=len(classes), class_labels=classes)

data._convertToOneOfMany( )                 # recommended by PyBrain

fnn = buildNetwork( data.indim, 5, data.outdim, outclass=SoftmaxLayer ) 

trainer = BackpropTrainer( fnn, dataset=data, momentum=m, verbose=True, weightdecay=wd)

trainer.trainUntilConvergence(maxEpochs=80)

# stop training and start using my trained network here

output = fnn.activate(input)


正如所料,我得到了“output”的一个数值,但是有没有办法直接确定预测的类标签呢?即使没有,我如何将“output”的值映射到我的类标签?谢谢您的帮助。

当您说“输出”得到一个数值时,您是指标量(即,不是数组)吗?根据我的理解,您应该得到一个包含四个值的数组(即,尽可能多的输出类)。该数组中的最大值对应于类的索引。我不知道PyBrain是否提供了一个实用函数来提取这些信息,但您可以这样做:

class_index = max(xrange(len(output)), key=output.__getitem__)
class_name = classes[class_index]
顺便说一句,您省略了在数据集中实际填充数据的步骤