0
你好,我已經移植Karpathy's ReinforceJs到C#和我做的不錯,直到我遇到了這個移植JavaScript以C#(存儲在陣列功能)
backward: function() {
for(var i=this.backprop.length-1;i>=0;i--) {
this.backprop[i](); // tick!
}
backprop是圖一個數組,因爲你可以告訴上面的數組包含這裏fuctions它們是如何存儲:
if(this.needs_backprop) {
var backward = function() {
for(var i=0,n=d;i<n;i++){ m.dw[d * ix + i] += out.dw[i]; }
}
this.backprop.push(backward);
}
我剛剛轉換這個(向後)成時needs_backprop是真正運行的功能,但在測試我的fuctions後每次只產生相同的作用C# code in repo摘要:
if (NeedsBackPropagation)
{
Backward(m, outt, n);
}
和落後:
public void Backward(Matrix m, Matrix outt,int n)
{
for (var i = 0; i < n; i++)
{
// grad for z = tanh(x) is (1 - z^2)
var mwi = outt.Weights[i];
m.BackPropWeights[i] += (1.0 - mwi * mwi)* outt.BackPropWeights[i];
}
}
我想知道A.直上在陣列中存儲的功能,如他後來打電話給他們或B.這在C#中的等價物,我不會介意庫本身
可以存儲在'列表功能 _backprop =新名單()'。然後像這樣添加:'_backprop.Add(()=> {function here});'。並以與javascript相同的方式調用:'_backprop [i]()'。 –
Evk