我发现当我使用 .item() 从目标函数中的 numpy 数组中检索值时 scipy.optimize.minimize 有效,但是当我通过索引 [0,0] 检索时它失败了:
def sigmoid(Z):
return 1 / (1 + np.exp(-Z))
def hyp_log(X, theta):
return sigmoid(X @ theta)
def cost_log(theta, X, Y, reg_const=0):
hyp = hyp_log(X, theta)
return (Y.T @ -np.log(hyp) + (1-Y).T @ -np.log(1-hyp)).item() / len(X) + reg_const * (theta[1:].T @ theta[1:]).item() / (2 * len(X))
result = minimize(cost_log, theta, args=(X,Y,reg_const), method='TNC')
如果我使用[0,0]索引而不是.item()在cost_log函数中使用索引,函数本身的工作方式与以前完全相同,但将IndexError: too many indices for array. 我想了解为什么会发生这种情况以及在使用最小化时在目标函数中应注意的事项。
12345678_0001
相关分类