我尝试使用OPF运行TemporalClassification模型来识别来自流的模式。我调整了模型参数,因此它有两个传感器输入:ScalarEncoder和SDRCategoryEncoder。后者标记为classifierOnly。并且它也被推断为预测字段。
尝试使用输入数据输入模型时,我得到了
RuntimeError: getOutputData unknown output 'categoriesOut' on region Classifier.
NontemporalClassification(仅更改了inferenceType)模型在没有此类错误的情况下运行。
我在nupic代码中发现了6个类别出现:https://github.com/numenta/nupic/search?utf8=%E2%9C%93&q=categoriesOut
在558行的nupic / frameworks / opf / clamodel.py中出现错误
classificationDist = classifier.getOutputData('categoriesOut')
似乎网络中的ClassifierRegion没有准备好输出数据。
任何人都可以解释为什么类别区域没有' categoriesOut'?我想我的模型参数中存在错误配置,但在模型初始化期间没有错误或警告。是否有必要运行TemporalClassification模型所需的参数和赋值(NUPIC文档中除外)?
答案 0 :(得分:1)
NuPIC中有几种类型的ClassifierRegions。您可以在nupic / regions文件夹中找到它们。我检查了消息来源,发现' categoriesOut'在KNNClassifierRegion
的输出字典中outputs=dict(
categoriesOut=dict(
description='A vector representing, for each category '
'index, the likelihood that the input to the node belongs '
'to that category based on the number of neighbors of '
'that category that are among the nearest K.',
dataType='Real32',
count=0,
regionLevel=True,
isDefaultOutput=True),
确保在配置TemporalClassification模型时使用 KNNClassifierRegion 。 NontemporalClassification的样本使用CLAClassifier,但CLAClassifierRegion在其输出中没有categoriesOut,如果你保留,你的问题中会出现错误
'regionName' : 'CLAClassifierRegion'
用于TemporalClassification模型。