知識點回顧:
- 三種不同的模型可視化方法:推薦torchinfo打印summary+權重分布可視化
- 進度條功能:手動和自動寫法,讓打印結果更加美觀
- 推理的寫法:評估模式
作業:調整模型定義時的超參數,對比下效果。
學習率(Learning Rate)
from keras.optimizers import Adam
optimizer = Adam(learning_rate=0.001) # 初始學習率示例
正則化參數
model.add(Dense(64, activation='relu', kernel_regularizer=l2(0.01)))
model.add(Dropout(0.3))
網格搜索(Grid Search)
from sklearn.model_selection import GridSearchCV
param_grid = {'C': [0.1, 1, 10], 'gamma': [0.01, 0.1]}
grid_search = GridSearchCV(SVC(), param_grid, cv=5)
grid_search.fit(X_train, y_train)
隨機搜索(Random Search)
from sklearn.model_selection import RandomizedSearchCV
param_dist = {'n_estimators': randint(50, 200), 'max_depth': randint(3, 10)}
random_search = RandomizedSearchCV(RandomForestClassifier(), param_dist, n_iter=10)
random_search.fit(X, y)
貝葉斯優化
import optuna
def objective(trial):lr = trial.suggest_float('lr', 1e-5, 1e-1, log=True)batch_size = trial.suggest_categorical('batch_size', [32, 64, 128])return evaluate_model(lr, batch_size)study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=50)
使用交叉驗證確保結果可靠性:
from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5, scoring='accuracy')
@浙大疏錦行