Javascript Tensorflow.js与tf.train的反向传播

Javascript Tensorflow.js与tf.train的反向传播,javascript,tensorflow,neural-network,backpropagation,tensorflow.js,Javascript,Tensorflow,Neural Network,Backpropagation,Tensorflow.js,当我尝试在我的代码中实现此功能时,为了进行反向传播,请将(损失)最小化到tf.train.stg(learningRate)。我已经得到了多个错误,比如传递到variableGrads(f)中的f必须是一个函数。我将如何在下面的代码中成功实现上述功能?为什么会出现这种错误呢 神经网络: var X = tf.tensor([[1,2,3], [4,5,6], [7,8,9]]) var Y = tf.tensor([[0,0,1]]) var m = X.shape[0]

当我尝试在我的代码中实现此功能时,为了进行反向传播,请将(损失)最小化到tf.train.stg(learningRate)。我已经得到了多个错误,比如传递到variableGrads(f)中的f必须是一个函数。我将如何在下面的代码中成功实现上述功能?为什么会出现这种错误呢

神经网络:

var X = tf.tensor([[1,2,3], [4,5,6], [7,8,9]])
    var Y = tf.tensor([[0,0,1]])
    var m = X.shape[0]
    var a0 = tf.zeros([1,3])

    var parameters = {
        "Wax": tf.randomUniform([3,3]),
        "Waa": tf.randomUniform([3,3]),
        "ba": tf.zeros([1,3]),
        "Wya": tf.randomUniform([3,3]),
        "by": tf.zeros([1,3])
    }

   

    function RNN_cell_Foward(xt, a_prev, parameters){
        var Wax = parameters["Wax"]
        var Waa = parameters["Waa"]
        var ba = parameters["ba"]

        var a_next = tf.sigmoid(tf.add(tf.add(tf.matMul(xt, Wax), tf.matMul(a_prev , Waa)),ba) )

        return a_next
    }
    function RNN_FowardProp(X, a0, parameters){
        var T_x  = X.shape[0]
        var a_next = a0
        var i = 1
        var Wya = parameters["Wya"]
        var by = parameters["by"]
        
        for(; i <= T_x; i++){
            var xt = X.slice([i-1,0],[1,-1])
            a_next = RNN_cell_Foward(xt, a_next, parameters)
        }
        var y_pred = tf.sigmoid(tf.add(tf.matMul(a_next, Wya), by))
      return y_pred
    }
    const learningRate = 0.01;
    var optimizer = tf.train.sgd(learningRate);
    var model = RNN_FowardProp(X, a0, parameters)
    var loss = tf.losses.meanSquaredError(Y, model)



    for (let i = 0; i < 10; i++) {
        optimizer.minimize(loss)
    }
var X=tf.张量([[1,2,3],[4,5,6],[7,8,9])
变量Y=tf.张量([[0,0,1]])
var m=X.shape[0]
var a0=tf.零([1,3])
变量参数={
“蜡”:tf.随机均匀([3,3]),
“Waa”:tf.随机均匀([3,3]),
“ba”:tf.零([1,3]),
“Wya”:tf.随机均匀([3,3]),
“by”:tf.zeros([1,3])
}
函数RNN\u cell\u Foward(xt,a\u prev,参数){
变量蜡=参数[“蜡”]
var Waa=参数[“Waa”]
var ba=参数[“ba”]
var a_next=tf.sigmoid(tf.add(tf.matMul(xt,Wax),tf.matMul(a_prev,Waa)),ba))
下一步返回a_
}
函数RNN_FowardProp(X,a0,参数){
var T_x=x.shape[0]
var a_next=a0
变量i=1
var Wya=参数[“Wya”]
var by=参数[“by”]

这能回答你的问题吗?