Я делаю GridSearchCV, я отслеживал% ядер и видел, что когда я работал на простой нейронной сети, у 4 ядер был тот же%, но когда поиск по сетке cv (n_jobs = 1 ) началось было большое замешательство в линиях сюжета. Почему? Я использую Zorin
Ниже вы можете найти часть кода, где я делаю gscv (но я изменил n_jobs, на рисунке выше он был использован n_jobs = 1):
def build_regressor(opti, units1,units2, units3, acti, a, kern):
model_TP = Sequential()
model_TP.add(Dense(units = units1, input_shape = (X_train_TP.shape[1],), activation = acti, kernel_initializer = kern))
model_TP.add(Dropout(a))
model_TP.add(Dense(units = units2, activation = acti, kernel_initializer = kern))
model_TP.add(Dropout(a))
model_TP.add(Dense(units = units3, activation = acti, kernel_initializer = kern))
model_TP.add(Dense(1,activation = 'linear'))
model_TP.compile(loss = 'mse', optimizer = opti, metrics = ['mse'])
return model_TP
parameters ={'units1' : [50,100,150],
'units2' : [50,100,150],
'units3' : [50,100,150],
'batch_size' : [50,100,250],
'kern':['random_normal','glorot_uniform','random_uniform'],
'acti':['relu','sigmoid','linear'],
'opti':[tf.keras.optimizers.Adamax(lr=0.001),
tf.keras.optimizers.Adam(lr=0.001)],
'a' : [0.2,0.25]
}
regressor = KerasRegressor(build_fn = build_regressor, verbose = 1)
gridSearch = GridSearchCV(estimator=regressor,
param_grid=parameters,
cv=5, n_jobs = 4
)
grid_result = gridSearch.fit(X_train_TP, y_train_TP)
print('Grid Search Best score',gridSearch.best_score_)
print('Grid Search Best Parameters', gridSearch.best_params_)
print('Execution time',gridSearch.refit_time_)