温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python深度学习怎么调参数

发布时间:2026-09-25 00:56:58 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 Python 深度学习里,“调参数”通常分三个层次:超参数调优、模型结构调参、训练策略调参。下面用通俗 + 实战方式讲清楚。


一、什么是“参数” vs “超参数”

  • 参数(parameters):模型自己学出来的(如权重 W、偏置 b)
  • 超参数(hyperparameters):你事先设定的(如学习率、batch size)

你“调”的通常是超参数


二、最常见要调的超参数(按重要性)

1️⃣ 学习率(learning rate)【最重要】

optimizer = Adam(learning_rate=1e-3)

经验:

  • 太大:loss 震荡、不收敛
  • 太小:训练极慢
  • 常用:1e-2、1e-3、1e-4
  • 推荐:学习率调度
lr_schedule = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=3)

2️⃣ Batch Size

model.fit(x, y, batch_size=32)

经验:

  • 小 batch:泛化好,但慢
  • 大 batch:快,但易过拟合
  • 常用:16 / 32 / 64

3️⃣ 模型复杂度(层数 & 神经元)

model.add(Dense(128, activation='relu'))

调参思路:

  • 欠拟合 → 加层、加神经元
  • 过拟合 → 减层、加 dropout

4️⃣ Dropout / 正则化

model.add(Dropout(0.3))

常用:

  • Dropout:0.2–0.5
  • L2 正则:
Dense(64, kernel_regularizer=l2(1e-4))

5️⃣ 激活函数

  • 隐层:ReLU / LeakyReLU
  • 输出层:
    • 回归:linear
    • 二分类:sigmoid
    • 多分类:softmax

三、系统化的调参方法(别瞎试)

✅ 方法 1:网格搜索(简单但慢)

from sklearn.model_selection import GridSearchCV

✅ 方法 2:随机搜索(推荐)

from keras_tuner import RandomSearch

✅ 方法 3:贝叶斯优化(高效)

from keras_tuner import BayesianOptimization

四、用 Keras Tuner 自动调参(强烈推荐)

def build_model(hp):
    model = Sequential()
    model.add(Dense(
        hp.Int('units', 32, 256, step=32),
        activation='relu'))
    model.add(Dropout(hp.Float('drop', 0.2, 0.5)))
    model.compile(
        optimizer=Adam(hp.Choice('lr', [1e-2,1e-3,1e-4])),
        loss='categorical_crossentropy',
        metrics=['accuracy'])
    return model

五、调参顺序建议(经验法则)

  1. 先让模型能跑、能收敛
  2. 调学习率
  3. 调 batch size
  4. 调模型结构
  5. 加正则 / dropout
  6. 最后自动搜索

六、判断调得好不好

  • ✅ train loss ↓,val loss ↓
  • ❌ train ↓,val ↑ → 过拟合
  • ❌ 都不降 → 学习率 / 模型有问题

如果你愿意,可以告诉我:

  • 用的框架(TensorFlow / PyTorch)
  • 任务类型(分类 / 回归 / CV / NLP)
  • 当前模型结构

我可以直接帮你给出一套可调参数方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手