首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Deep Learning Tuning Playbook(中译版)

人工智能 2.5MB 65 需要积分: 1
立即下载

资源介绍:

由五名研究人员和工程师组成的团队发布了《Deep Learning Tuning Playbook》,来自他们自己训练神经网络的实验结果以及工程师的一些实践建议,目前在Github上已有1.5k星。此版本为中文翻译版,提供给大家免费下载,因为本人知识水平有限,翻译过程中可能有误,随时欢迎大家指出错误,我会随时更正。
# 深度学习调参手册 *这不是一个官方支持的谷歌产品。* **Varun Godbole, George E. Dahl, Justin Gilmer, Christopher J. Shallue, Zachary Nado** † Google Research, Brain Team ‡ Harvard University ## Table of Contents - [这份文件为谁准备?](#这份文件为谁准备?) - [为什么需要调参手册?](#为什么需要调参手册?) - [新项目指南](#新项目指南) - [选择模型架构](#选择模型架构) - [选择优化器](#选择优化器) - [选择batch size](#选择batch size) - [选择初始配置](#选择初始配置) - [提高模型性能的科学方法](#提高模型性能的科学方法) - [渐进式调整策略](#渐进式调整策略) - [探索与开发](#探索与开发) - [为下一轮实验选择目标](#为下一轮实验选择目标) - [设计下一轮实验](#设计下一轮实验) - [是否采用训练管道变化或超参数配置](#是否采用训练管道变化或超参数配置) - [探索结束后](#探索结束后) - [确定训练steps](#确定训练steps) - [当训练不限时时应该训练多长时间](#当训练不限时时应该训练多长时间) - [当训练由计算机控制时应该训练多长时间](#当训练由计算机控制时应该训练多长时间) - [对训练管道的补充指导](#对训练管道的补充指导) - [优化输入管道](#优化输入管道) - [评估模型性能](#评估模型性能) - [保存检查点并回视最佳检查点](#保存检查点并回视最佳检查点) - [设置实验跟踪](#设置实验跟踪) - [Batch normalization操作细节](#Batch normalization操作细节) - [多主机管道的注意事项](#多主机管道的注意事项) - [常见问题](#常见问题) ## 这份文件为谁准备? 这份文件是为深度学习模型性能极为感兴趣的工程师和研究人员(包括个人和团队)准备的。我们假设其有一定机器学习和深度学习概念及基本知识。 我们的重点是超参数调整过程。同时也触及了深度学习训练的其他方面,如管道实现和优化,但对这些方面的讲述并不完整。 我们假设机器学习问题是一个监督学习问题或看起来很像一个问题的东西(如自监督)。也就是说,本文中的一些建议可能适用于其他类型的问题。 ## 为什么需要调参手册? 目前,要想让深度神经网络在实践中运行良好,需要付出惊人的努力和猜想。更糟糕的是,人们很少记录获得良好结果的设置。论文掩盖了导致其最终结果的过程,以呈现一个更干净的故事,而从事商业问题的机器学习工程师很少有时间概括他们的调参过程。教科书倾向于回避实践指导,优先考虑基本原则,即使其作者有必要应用工作经验来提供有效的建议。在准备创建这份文件时,我们找不到任何全面的说明来实际解释如何用深度学习获得好的结果。相反,我们在博客文章和社交媒体上发现了一些建议的片段,从研究论文的附录中窥见了一些技巧,偶尔有关于某个特定项目或管道的案例研究,还有很多困惑。 深度学习专家和不太熟练的从业者使用表面上类似的方法,但取得的结果间存在着巨大的差距。同时,这些专家也欣然承认他们所做的一些事情可能没有充分的理由。随着深度学习的成熟并对世界产生更大影响,社区需要更多资源,涵盖有用的设置,包括所有的实际细节,这对获得良好的结果至关重要。 我们是由5名研究人员和工程师组成的团队,他们已经在深度学习领域工作了很多年,其中一些人早在2006年就开始工作了。我们已经将深度学习应用于语音识别、天文学等各种问题,并在这一过程中学到了很多。这份文件是从我们自己训练神经网络、教导新的机器学习工程师以及为我们的同事提供深度学习实践建议的经验中发展出来的。 尽管看到深度学习从少数学术实验室实践的机器学习方法变成了为数十亿人使用的产品提供动力已经令人欣慰,但作为一门工程学科,深度学习仍然处于起步阶段,我们希望这份文件能鼓励其他人帮助该领域实现实验协议系统化。 这份文件是我们试图清理我们自己的深度学习方法时产生的,因此它代表了作者在写作时的观点,而不是任何形式的客观真理。我们自己在超参数调整方面的挣扎使其成为我们指导的一个重点,但我们也涵盖了在工作中遇到的其他重要问题(或看到的错误)。我们的意图是让这项工作成为一份活的文件,随着我们信仰的改变而不断成长和发展。例如,关于调试和减轻训练失败的材料,我们两年前是不能写的,因为它是基于最近的结果和正在进行的调查。不可避免地,我们的一些建议将需要更新,以考虑到新的结果和改进的工作流程。我们不知道最佳的深度学习配方,但在社区开始写下和辩论不同的过程之前,我们无法找到它。 为此,我们鼓励发现我们的建议有问题的读者提出代替意见,并提供令人信服的证据,以便我们能够更新手册。我们也希望看大可能有不同建议的指南和手册,以便我们能够作为一个社区努力实现最佳过程。 最后,任何标有🤖 的部分都是我们想做更多研究的地方。只有在尝试写完这本手册后,才完全明白在深度学习从业者的工作流程中可以找到多少有趣的和被忽视的研究问题 ## 新项目指南 我们在调参过程中做出的许多决定可以在项目开始时做一次,只有在情况发生变化时才会偶尔重新审核。 我们的指导意见做出以下假设: - 问题制定、数据清理等基本工作已经完成,在模型架构和训练配置上花时间是有意义的。 - 已经有一个管道设置好了,可以做训练和评估,而且很容易为各种感兴趣的模型执行训练和预测工作 - 适当的衡量标准已经被选择和实施。这些指标应尽可能地代表在部署环境中所测量的内容。 ### 选择模型架构 ***概述:*** *当开始一个新项目时,尽量重用一个已经工作的模型。* - 选择一个成熟的、常用的模型架构,先让它工作起来。以后可以建立一个自定义模型 - 模型架构通常有各种超参数,决定模型的大小和其他细节(如层数、层宽、激活函数的类型) - 因此,选择模型架构实际上意味着选择一个不同的模型系列(每个模型超参数的设置都只有一个) - 我们将在[选择初始配置](#选择初始配置)和[提高模型性能的科学方法](#提高模型性能的科学方法)中考虑选择模型超参数的问题。 - 在可能的情况下,尽量找到一篇解决手头问题的论文,并以该模型为起点进行复制。 ### 选择优化器 ***概述:*** *从当前问题中最流行的优化器开始* - 在所有类型的机器学习问题和模型架构中,没有哪个优化器是“最好”的。即使只是[comparing the performance of optimizers is a difficult task](https://arxiv.org/abs/1910.05446).🤖 - 我们建议使用成熟的、受欢迎的优化器,特别是在开始一个新项目时。 - 理想情况下,选择用于同类型问题最流行的优化器 - 对所选优化器的**所有**超参数给予关注。 - 具有更多超参数的优化器可能需要更多的调整努力来找到最佳配置。 - 这在项目的开始阶段尤其重要,因为我们正试图找到其他各种超参数�

资源文件列表:

Deep Learning Tuning Playbook.zip 大约有15个文件
  1. assets/
  2. assets/axis_model_with_instability.png 49.86KB
  3. assets/bad_search_space.png 115.98KB
  4. assets/beneficial_effect_warmup.png 133.83KB
  5. assets/good_search_space.png 129.95KB
  6. assets/gradient_clipping.png 74.58KB
  7. assets/have_we_sampled_enough.png 54.26KB
  8. assets/instability_during_warmup.png 78.5KB
  9. assets/isolation_plot.png 114.97KB
  10. assets/loss_model_with_instability.png 54.77KB
  11. assets/more_frequent_evals.png 71.17KB
  12. assets/stride_instability.png 110.63KB
  13. Deep Learning Tuning Playbook.md 115.57KB
  14. Deep Learning Tuning Playbook.pdf 1.68MB
  15. README.md 90.05KB
0评论
提交 加载更多评论
其他资源 jdk1.8 源码( Linux)(1.4, 1.5, 1.6, 1.7都可以用)
jdk1.8 源码, Linux的同学可以用的上. 由于源码JDK是前版本的超集, 所以1.4, 1.5, 1.6, 1.7都可以用的上.
最简单的基于FFmpeg的AVFilter例子(叠加水印) 1.1
本程序使用FFmpeg的AVfilter实现了视频的水印叠加功能。可以将一张PNG图片作为水印叠加到视频上。 是最简单的FFmpeg的AVFilter方面的教程。适合FFmpeg的初学者。 1.1版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。
Recuva_1.52.0.1086绿色中文版
不错的数据恢复工具。向导很详细,适合新手
mysql-connector-java-8.0.27
mysql-connector-java-8.0.27
Webyog SQLyog Ultimate
SQLyog123456
XCP协议的规范文档
XCP协议的原规范文档,主要包含了Part1-5共5个部分,其中第三部分又分为CAN、以太网和Sxl等。对于XCP协议的开发者和学习者有借鉴意义
Qt、QCustomPlot、实时波形绘制、实时曲线绘制
讲解见博客:https://blog.csdn.net/weixin_47488212/article/details/129299987 对于初学者而言,想要及时地做出一套上位机或实时波形显示界面,还是存在一定难度的,为了降低初学者的学习难度,亦方便其他研发人员的使用,笔者分享一套使用简单、功能强大的实时波形绘制控件,其基于Qt5与QCustomPlot实现。 在项目中必须包含QCustomPlot相关文件,笔者这里是直接包含qcustomplot.cpp、qcustomplot.h两个文件。另外在项目的.pro中,必须包含以下这句: QT += widgets printsupport 可以使用代码直接实例化WidgetPlot2D,或通过窗口提升,然后使用WidgetPlot2D绘制实时波形只需两步: ① 初始化波形名称:函数initGraphName(QStringList) ② 给对应的波形添加数据:函数addData(QString, double)
vb纯代码生成二维码源代码,支持低中高容错生成
vb纯代码生成二维码源代码,支持低中高容错生成