Day35打卡 @浙大疏锦行
知识点回顾:
- 三种不同的模型可视化方法:推荐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')
@浙大疏锦行