| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 【TensorFlow&PyTorch】常用优化器学习笔记 -> 正文阅读 |
|
[Python知识库]【TensorFlow&PyTorch】常用优化器学习笔记 |
以下选取部分本人认为的常用的优化器以及参数(即不全),想看详情的可去文档查看. Module: tf.keras.optimizers ?|? TensorFlow Core v2.9.1 Adam:最常用的优化器之一,不懂用什么优化器的时候选它就对了。 TensorFlow:
PyTorch:?
SGD:随机梯度下降,可在训练时下调学习率. TensorFlow:
PyTorch:
Adagrad:可自适应调整学习率. TensorFlow:
PyTorch:
RMSprop:解决了上面那个Adagrad学习率急速下降的问题,可以看做优化版. TensorFlow:
PyTorch:
使用优化器:tensorflow:训练后更新参数:optimizer.apply_gradients(zip(计算好的梯度,网络模型的参数)) 网络模型的参数可用:model.trainable_variables() 其中optimizer和model都需要自行定义,实例化. PyTorch:在loss值前向传播之前需要清空优化器中的梯度信息,因为会堆积:optimizer.zero_grad( ) 在loss值前向传播之后再更新参数:optimizer.step( ) 在PyTorch中可强制衰减学习率: scheduler=StepLR(optimizer,step_size= , gamma= ) 意思是optimizer每更新参数step_size次后,学习率*=gamma. 此后更新参数用:scheduler.step( ) 以上标蓝的,名字可自行定义,并无强制要求. 小结:TensorFlow和PyTorch中的优化器都差不多,但PyTorch中实例化优化器多了第一个参数为网络模型的参数.并且在训练中需要手动清空优化器梯度. |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 12:00:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |