如何解决使用tf.train
当我尝试在我的代码中实现此功能tf.train.stg(learningRate).minimize(loss)
以便进行反向传播时。我遇到了多个错误,例如在variableGrads(f)中传递的f必须是一个函数。我如何将上述功能成功实现到下面的代码中?为什么会出现此错误?
神经网络:
var X = tf.tensor([[1,2,3],[4,5,6],[7,8,9]])
var Y = tf.tensor([[0,1]])
var m = X.shape[0]
var a0 = tf.zeros([1,3])
var parameters = {
"Wax": tf.randomUniform([3,3]),"Waa": tf.randomUniform([3,"ba": tf.zeros([1,"Wya": tf.randomUniform([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,parameters)
var loss = tf.losses.meanSquaredError(Y,model)
for (let i = 0; i < 10; i++) {
optimizer.minimize(loss)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。