我正在尝试使用javascript中的神经网络预测一些数据。为此,我发现convnetjs似乎易于使用。
在该示例中,他们使用了一种称为MagicNet的东西,因此您无需了解NN就可以使用它。这是使用示例:
// toy data: two data points, one of class 0 and other of class 1
var train_data = [new convnetjs.Vol([1.3, 0.5]), new convnetjs.Vol([0.1, 0.7])];
var train_labels = [0, 1];
// create a magic net
var magicNet = new convnetjs.MagicNet(train_data, train_labels);
magicNet.onFinishBatch(finishedBatch); // set a callback a finished evaluation of a batch of networks
// start training MagicNet. Every call trains all candidates in current batch on one example
setInterval(function(){ magicNet.step() }, 0});
// once at least one batch of candidates is evaluated on all folds we can do prediction!
function finishedBatch() {
// prediction example. xout is Vol of scores
// there is also predict_soft(), which returns the full score volume for all labels
var some_test_vol = new convnetjs.Vol([0.1, 0.2]);
var predicted_label = magicNet.predict(some_test_vol);
}
我不明白的是:
他们创建像
[new convnetjs.Vol([1.3, 0.5]), new convnetjs.Vol([0.1, 0.7])]
这样的火车数据,然后使用2个标签。这些标签是数组的每个位置或这些位置的子数组的每个元素的标记?这是一个视觉示例:
就像
[new 0, new 1]
还是[new convnetjs.Vol([0, 1]), new convnetjs.Vol([0, 1])]
? 最佳答案
样本new convnetjs.Vol([1.3, 0.5])
具有标签0
。
样本new convnetjs.Vol([0.1, 0.7])
具有标签1
。
通常,在机器学习中,您通常会使用非常高维的样本(这里只是二维的),但是每个样本只有一个标签,告诉您它属于哪个“类”类的实际含义取决于您要解决的问题;例如,它们可以是用手写数字图像表示的数字。