我使用PyBrain库的ClassificationDataSet
类遇到了非常奇怪的行为。它似乎为数据添加了额外的样本,我无法理解为什么!
以下是代码:
data = [[2, 4, 1],
[3, 3, 0],
[1, 2, 1]]
targets = [3, 1, 2]
training_ds = ClassificationDataSet(len(data[0]), nb_classes=3, class_labels=['1', '2', '3'])
for i in range(len(data)):
training_ds.addSample(data[i], targets[i])
在第一次调用addSample
时,它会向包含全0的输入数据添加一个额外的样本,并添加目标值0.在第二次迭代中,数据的大小正确,第三次迭代它以看似随机的顺序复制数据,使其成为(6,3)数据集。有谁知道它为什么会这样做?
我正在使用最新版本的PyBrain。
答案 0 :(得分:0)
我有类似的问题
我的问题在于使用 ds.data ["输入"] 而不是 ds.getField("输入")。
下一个代码显示我的问题
ds.AddSample([2, 4, 1], 1)
print(ds.data["input"])
>>> [[2, 4, 1], [0, 0, 0]]
这是正确的代码
ds.AddSample([2, 4, 1], 1)
print(ds.getField("input"))
>>> [[2, 4, 1]]
也许这会有所帮助。