iar最高优化模式选择size对代码的影响_如何调参1:决定模型预测性能的影响因素...

ccad02ae19790467b78bcbfbbec3e7dc.png

1. 前言

李宏毅说过,将来会有一个新兴工作类型:AI训练师。因为通过深度学习神经网络获得预测模型涉及如下两个经验性的过程需要人类的参与。

1) 神经网络模型的选择;
2)模型训练过程中参数的设定。

就目前我所了解到的,最终训练所得模型性能的好坏涉及到下面4个方面:

1) 数据的预处理和组织;
2) 神经网络模型的选择和构建;
3) 损失函数和优化函数的选择;
4) 涉及上述3个因素的 参数的设定。

本文,我主要罗列一些第3,4方面的学习心得,如下文。1,2两点在代码注释中有所涉及。

此外,推荐:

1)AI副教授李宏毅课程;
2)两个关于调参的知乎回答,1,2

2. 模型训练的两个关键函数和它们的参数

神经网络训练模型的方法是迭代目标是得到最优模型参数( ,b)。模型参数的好坏(即,模型的好坏)用损失函数(Loss)评估。神经网络的起始参数w是随机给定的,每次迭代就是用拟定更优的参数w计算损失函数,拟定的更优w由优化函数(optimizer求导计算得到。这个训练过程涉及到2个参数(学习率 ;迭代次数n),其基本过程概括如下:

1) 首先随机生成初始模型参数( );算法代入设定好的学习率 ,和迭代次数n;
2) 由 损失函数(Loss 获得Loss ( );
3) 计算导数 / . 由优化函数(optimizer 得到下一次迭代的优化参数 = ( − / );
4) 不断迭代直至迭代次数n。

整个过程其实由损失函数和优化函数驱动。因此,除了参数的选择影响模型性能,这2个函数的选择也是一个核心因素

1) 损失函数Loss,示例如下(采用crossentropy函数):
#这里损失函数采用了crossentropy函数
loss = tf.keras.losses.sparse_categorical_crossentropy(y_true=labels, y_pred=labels_pred)
2) 优化函数optimizer示例1如下(优化过程):
#第1步求导grads=  /  
 grads = tape.gradient(loss, model.trainable_variables)
#第2步得到下一次迭代的优化参数w
 optimizer.apply_gradients(grads_and_vars=zip(grads, model.trainable_variables))
示例2如下(采用Adam优化函数):
#这里优化函数采用封装好的Adam方法
optimizer=tf.keras.optimizers.Adam(learning_rate),

3. 代码和详细注释

3.1. 自定义模型

# -*- coding: 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值