Node.js x,y
koordinatlarındaki bir sayı satırından öğrenmek için convnetjs kullanmayı denerim. Amaç, basit bir sayı satırında bir sonraki değeri tahmin etmektir.Node.js ve convnetjs kullanarak bir dizi sayıdan nasıl derinden öğrenilir ve yeni bir değer tahmin edilir?
Her şeyden önce çok basit bir satır [0,1,0,2,0,3,0,4,0,5,0,6]
belki daha sonra sin
ve cos
sayı satırı.
Derin öğrenme matrisine derinden gitmek istemiyorum, bu yüzden convnetjs kullanıyorum.
Şimdiye kadar denedim:
var convnetjs = require("./convnet-min.js");
// create a net out of it
var net = new convnetjs.Net();
var layer_defs = [];
layer_defs.push({type:'input', out_sx:1, out_sy:1, out_depth:1});
layer_defs.push({type:'fc', num_neurons:5, activation:'sigmoid'});
layer_defs.push({type:'regression', num_neurons:1});
var net = new convnetjs.Net();
net.makeLayers(layer_defs);
var my_data = [
0,1,2,3,4,5,6,7,8,9,10,
0,1,2,3,4,5,6,7,8,9,10,
0,1,2,3,4,5,6,7,8,9,10,
0,1,2,3,4,5,6,7,8,9,10,
0,1,2,3,4,5,6,7,8,9,10,
0,1,2,3,4,5,6,7,8,9,10,
0,1,2,3,4,5,6,7,8,9,10,
0,1,2,3,4,5,6,7,8
];
var x = new convnetjs.Vol(my_data);
var trainer = new convnetjs.SGDTrainer(net, {learning_rate:1.1, momentum:0.0, batch_size:1, l2_decay:0.001});
var think = function() {
for (var i = 0; i < my_data.length; i++) {
x.w[i] = my_data[i]; // Vol.w is just a list, it holds your data
trainer.train(x, my_data[i]);
}
}
for (var i = 0; i < 100; i++) {
think();
var predicted_values = net.forward(x);
console.log('predicted value: ' + predicted_values.w[0]);
}
sonraki değerini tahmin etmek istiyorum, ama nasıl o kötü yaptığını eğitmen söylemek, iyi (bir sonraki değeri [9] bilerek) acaba öğrenmeyi gerçekleştirmek ya da çok iyi bir iş mi?
Bir değeri tahmin etmek için x
1 treninin bu doğru yolu nedir? Tahminimce bu değer önemsiz değil çünkü tahmin edilen değer 9
^^ yönüne girmiyor.
zaten aksi arama
Bu
kodudur , net net değerlerini almak ve daha sonra diferansiyel hatayı geri yönlendirerek öğrenin. Ancak, veri örneğinizin gerçekten uygun olduğunu düşünmüyorum. Normal dağılımı takip eden setler oluşturmaya çalışın, esas olarak asıl sorunlarınız var ve bu araç ne için geliştirildi ve optimize edildi. – WalfratGiriş verilerinizin nasıl olduğunu ve çıkışın ne kadar beklendiğini belirtebilir misiniz? Sorunuzdaki ifadeyle "my_data" biçimindeki ilişkiyi görmüyorum. – leobelizquierdo
My_data, 0'dan 10'a kadar başlayan ve 0'dan sonra tekrar tekrar başlayan bir sayı satırıdır. Beklediğim bir sonraki varsayılan değer 9'dur. –