我目前正在为一项家庭作业分配一个简单的回归任务(不涉及ML库,只有我自己的代码)。问题是Jupyter有时会使用我95%+的CPU(这很好,我想使用8600k),但经常决定根本不使用任何额外的线程,并保持20%的稳定使用率。正因为如此,我的反馈循环增加了6倍。
我到处寻找任何可能与jupyter相关的设置,但没有找到。这个问题有什么解释吗?
编辑: 这是我当前正在使用的代码。传递的数据是30000x36 np数组。我不知道jupyter是如何做到这一点的,但是,有时候它会做到这一点。
def hyp(theta, X):
return X.dot(theta)
def cost_function(theta,X,Y):
return (1.0 / ( 2 * X.shape[0] ) ) * np.sum( (hyp(theta, X) - Y ) ** 2 )
def derivative_cost_function(theta, X, Y):
e = hyp(theta, X) - Y
return (1.0 / X.shape[0]) * X.T.dot(e)
def GradientDescent(X, Y, maxniter=400000):
nexamples = float(X.shape[0])
thetas = np.ones(X.shape[1],)
alpha = 0.001
print("Before:", cost_function(thetas, X, Y))
print_iter = 100
for i in range (maxniter):
dtheta = derivative_cost_function(thetas, X, Y)
thetas = thetas - alpha * dtheta
if i % print_iter == 0:
print(i, cost_function(thetas, X, Y))
print("After:", cost_function(thetas, X, Y))
return thetas
答案 0 :(得分:1)
这看起来更像是一个麻木的问题,而不是一个jupyter问题。看看https://roman-kh.github.io/numpy-multicore/可以使numpy使用更多的内核。