概要
convnetjsで、101から255までの偶数を学習させて、1から100まで聞いてみた。
結果
1 : odd 2 : even 3 : odd 4 : even
5 : odd 6 : even 7 : odd 8 : even
9 : odd 10 : even 11 : odd 12 : even
13 : odd 14 : even 15 : odd 16 : even
17 : odd 18 : even 19 : odd 20 : even
21 : odd 22 : even 23 : odd 24 : even
25 : odd 26 : even 27 : odd 28 : even
29 : odd 30 : even 31 : odd 32 : even
33 : odd 34 : even 35 : odd 36 : even
37 : odd 38 : even 39 : odd 40 : even
41 : odd 42 : even 43 : odd 44 : even
45 : odd 46 : even 47 : odd 48 : even
49 : odd 50 : even 51 : odd 52 : even
53 : odd 54 : even 55 : odd 56 : even
57 : odd 58 : even 59 : odd 60 : even
61 : odd 62 : even 63 : odd 64 : even
65 : odd 66 : even 67 : odd 68 : even
69 : odd 70 : even 71 : odd 72 : even
73 : odd 74 : even 75 : odd 76 : even
77 : odd 78 : even 79 : odd 80 : even
81 : odd 82 : even 83 : odd 84 : even
85 : odd 86 : even 87 : odd 88 : even
89 : odd 90 : even 91 : odd 92 : even
93 : odd 94 : even 95 : odd 96 : even
97 : odd 98 : even 99 : odd 100 : even
サンプルコード
function toarray(n) {
var ary = new Array;
for (var i = -1 ; i < 7; i++)
{
var s = 1;
if (i > -1) s = 2 << i;
var b = n & (s)
if (b > 0)
{
ary.push(1.0);
}
else
{
ary.push(0.0);
}
}
return ary;
}
function oe(n) {
if (n % 2 == 0)
{
return 1;
}
else
{
return 0;
}
}
function odd(j, w) {
var str = "";
if (w[1] > 0.9)
{
str = "even";
}
else if (w[0] > 0.9)
{
str = "odd";
}
return str;
}
function test() {
var str = "";
var net = new convnetjs.Net();
net.makeLayers([{
type: 'input',
out_sx: 1,
out_sy: 1,
out_depth: 8
}, {
type: 'fc',
num_neurons: 10,
activation: 'tanh'
}, {
type: 'softmax',
num_classes: 2
}]);
var trainer = new convnetjs.Trainer(net);
var avloss = 0.0;
for (var i = 0; i < 100; i++)
{
for (var j = 101; j < 256; j++)
{
var point = new convnetjs.Vol(1, 1, 10);
point.w = toarray(j);
var f = oe(j);
var stats = trainer.train(point, f);
avloss += stats.loss;
}
}
avloss /= 100 * i;
alert(avloss);
for (var j = 1; j < 101; j++)
{
var point = new convnetjs.Vol(1, 1, 10);
point.w = toarray(j);
var prediction = net.forward(point);
str += j + " : "+ odd(j, prediction.w) + " ";
if (j % 4 == 0) str += "<br>";
}
return str;
}
var a = test();
document.getElementById('helloWorld').innerHTML = a;