Python 如何在损失没有改善的某个时期停止训练过程?
我试图用python实现逻辑回归,我想在训练和测试错误没有改善的时期停止训练过程。我做了以下工作:Python 如何在损失没有改善的某个时期停止训练过程?,python,python-3.x,machine-learning,logistic-regression,Python,Python 3.x,Machine Learning,Logistic Regression,我试图用python实现逻辑回归,我想在训练和测试错误没有改善的时期停止训练过程。我做了以下工作: def train(X_train,y_train,X_test,y_test,epochs,alpha,eta0): N = len(X_train) dim = X_train[0] w,b = initialize_weights(dim) for i in tqdm(range(epochs)): for x,y in zip(X_train
def train(X_train,y_train,X_test,y_test,epochs,alpha,eta0):
N = len(X_train)
dim = X_train[0]
w,b = initialize_weights(dim)
for i in tqdm(range(epochs)):
for x,y in zip(X_train,y_train):
dw = gradient_dw(x,y,w,b,alpha,1)
db = gradient_db(x,y,w,b)
w = w + (eta0*dw)
b = b + (eta0*db)
train_prob=[sigmoid((np.dot(w.T,x))+b) for x in X_train]
train_loss=logloss(y_train,train_prob)
test_prob=[sigmoid((np.dot(w.T,x))+b) for x in X_test]
test_loss=logloss(y_test,test_prob)
return w,b,train_loss,test_loss
我能够在最后得到损失,但我希望在损失没有改善的时期停止。
这里定义了initialize_weights()、gradient_dw()、gradient_dw()、sigmoid()和logloss()方法