Tensorflow.js Backpropagation with tf.train

Viewed 84

When I have been attempting to implement this function tf.train.stg(learningRate).minimize(loss)into my code in order to conduct back-propagation. I have been getting multiple errors such The f passed in variableGrads(f) must be a function. How would I implement the function above into the code bellow successfully? and Why does this error even occur?

Neural Network:

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)
    }
0 Answers
Related