所以我要计算梯度和黑森函数的和。阿法伊克西亚诺应该能做到,但我不知道怎么做。 X是大小为M X N的矩阵;y M大小的向量;βa N大小的向量。你知道吗
计算和的一种方法是使用scan()函数,我是这样做的:
res,ups = theano.scan(lambda v,w: v*np.log(1/(1+np.exp(-1*w.dot(beta))))
+((1-v)*(np.log(1/(1+np.exp(w.dot(beta)))))), sequences = [y,X])
t7 = theano.function(inputs = [X,y,beta],outputs = res)
据我所知,效果不错。但是,对于beta,我不能将其用作grad()函数的输入。 所以我想知道的是,是否有一种方法,或者用scan函数作为梯度函数的输入,或者用另一种方法来计算和。你知道吗
(我第一次在sympy中尝试,但是sympy不能lambdify Indexedbase对象,所以我可以计算grad,但不能将其用作函数,也许这有帮助?)你知道吗
求和是X和beta中一条直线的点积的函数,而二进制向量y决定使用这两个函数中的哪一个。你知道吗
log(1/(1+exp(-X_i*beta)))
希望有帮助?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐