首页 > 编程知识 正文

tensorflow接着上次训练,tensorflow应用实例

时间:2023-05-04 01:42:26 阅读:163798 作者:1405

大幅提高TensorFlow2模型精度的魔法操作Regulation公式例运动量公式例学习率减少过程例Early StoppingDropout

过拟合

如果训练集精度较高,但测试集精度较差,则遇到了“过拟合”(Overfitting )问题。 图:

过拟合的一个主要原因是模型太复杂了。 以下通过描述五种不同的方法来解决过拟合问题,提高模型的准确性。

规则注册通过约束要优化的参数,有助于防止过拟合。

公式中没有regulation的损失:

注册加入的损失:

与学习速率(lr )类似。 的值越大,规则ion的力越强,权重的值也越小。

示例L2添加注册网络:

network=TF.keras.sequential ([ TF.keras.layers.dense (256,kernel _ regularize r=TF.keras.regularize RS.RS ) TF.Keras.Layers.Dense(128,kernel _ regularize r=TF.keras.regularize RS.L2 (0.001 ),activation=TF.nn . ernel _ regularize r=TF.keras.regularize RS.L2 (0.001 )、activation=tf.nn.relu )、TF.Keras.Layers.dense

没有追加运动量:

追加运动量:

公式中未添加运动量的权重更新:

w:权重(weight ) k:迭代次数:学习率(learning rate ) f ) ) :微分相加运动量权重更新:

:动量权重z:历史微分示例添加了动量优化器3360

optimizer=TF.keras.optimizers.SGD (learning _ rate=0.02,momentum=0.9 ) optimizer=TF.keras.optimizers.SGD

学习率减少简单来说,学习率越大,我们训练的速度就越大,但找到最佳解的概率也变小。相反,学习率越小,训练的速度就越慢,但找到最佳解的概率就越高。

过程可以在训练初期稍微增大学习率,使网络迅速收敛。 在训练的后期稍微缩小学习率,我们可以得到更好的收敛并得到最优解。 图:

示例learning_rate=0.2 #学习率optimizer=TF.keras.optimizers.SGD (learning _ rate=learning _ rate,momentum=0.9 ) 正如学习率减少Early Stopping之前所述,训练集的精度还在提高,但是测试集的精度反而下降的情况下,会遇到过拟合(overfitting )的问题。

Early Stopping有助于在测试集精度下降时停止训练,避免因继续训练而出现过拟合问题。

dopoutlearninglesstolearnbetter

Dropout在每个训练批次中忽略部分特征,减少过拟合现象。

dropout通过强制神经元与随机弹出的其他神经元共同工作,取得了良好的效果。削弱了神经元节点间的联合适应性,提高了泛化能力。

例:

network=TF.keras.sequential ([ TF.keras.layers.dense ] 256,activation=tf.nn.relu,TF.keras.layers actinse #TF.keras.layers.dense ) 64、忽略activation=TF的一半#TF.Keras.Layers.dense(32、activation=tf.nn.relu )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。