改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。
2019-12-21 21:17:42 30.54MB JAVA 重构
1
这门课的PPT页数多目录乱,在此个人整理了PPT的目录架构和老师强调的考点,配合压缩包中的整理打印版PPT配合使用,期末开卷才知道往哪翻。
1
在本压缩包文件中,我们聚焦于吴恩达教授的深度学习课程中关于改善深层神经网络的编程练习作业。吴恩达是机器学习和人工智能领域的知名专家,他的课程深受全球学员喜爱,尤其对于初学者来说,是入门和提升深度学习技能的宝贵资源。 深度学习是一种模拟人脑神经网络结构的机器学习技术,它通过多层非线性变换对数据进行建模,能够处理复杂的数据模式,如图像、语音和文本等。在这个编程练习中,我们将深入探讨如何优化深层神经网络的性能,这通常涉及到以下几个关键知识点: 1. **激活函数**:激活函数如ReLU (Rectified Linear Unit) 和其变种Leaky ReLU、ELU (Exponential Linear Units) 在神经网络中起着至关重要的作用,它们为网络引入非线性,使得模型能够学习更复杂的模式。ReLU因其简单且计算效率高而被广泛使用,但可能会遇到“死亡ReLU”问题,即某些神经元可能永远不会被激活。Leaky ReLU和ELU则试图解决这个问题。 2. **损失函数**:损失函数是衡量模型预测与实际结果之间差距的指标,如均方误差(MSE)或交叉熵损失。选择合适的损失函数对优化过程至关重要。 3. **反向传播**:反向传播算法是深度学习中用于更新权重的主要方法,它根据损失函数的梯度来调整神经网络的参数。理解梯度计算和链式法则在这一过程中至关重要。 4. **优化器**:优化器如梯度下降、随机梯度下降(SGD)、动量优化、Adam (Adaptive Moment Estimation) 等决定了权重更新的速度和方向。不同的优化器在收敛速度和避免局部最小值方面有不同的表现。 5. **正则化**:为了防止过拟合,我们会使用正则化技术,如L1和L2正则化,或者Dropout。这些技术通过在损失函数中添加惩罚项或随机关闭一部分神经元,从而提高模型的泛化能力。 6. **批量大小和迭代次数**:训练过程中,每次更新权重时处理的样本数量称为批量大小,而模型遍历整个训练集的次数称为迭代次数。这两个参数会影响模型训练的速度和最终性能。 7. **超参数调优**:包括学习率、批量大小、正则化强度等在内的超参数需要通过实验来确定最佳值。可以使用网格搜索、随机搜索或基于梯度的优化方法来寻找最优超参数组合。 8. **模型保存与加载**:在训练过程中,保存最佳模型以避免过拟合,并能在未来重新加载模型进行预测,这是深度学习实践中常见的操作。 9. **验证集与测试集**:使用验证集进行模型选择和超参数调优,而测试集仅用于最后评估模型的泛化能力,确保模型不会过度拟合训练数据。 在提供的`.py`文件中,你可以看到这些概念如何被实际应用到代码中,例如定义网络结构、选择损失函数和优化器、执行反向传播以及实施正则化等。通过运行这些代码,你将能够亲手实践并加深对这些概念的理解。此外,`.html`格式的作业答案可以帮助你直观地查看和理解代码的执行结果,从而更好地吸收和巩固所学知识。
2019-12-21 20:23:35 871KB 深度学习 吴恩达 作业答案
1
在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码指点迷津!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。
2019-12-21 20:22:30 47.37MB 高质量代码 改善Python 程序的 91个建议
1
TCPIP高效编程:改善网络程序的44个技巧(高清带书签)
2019-12-21 19:59:23 25.97MB TCP/IP
1
该资源不是PDF版本(不高清,有水印),该资源是mobi版本,适用Kindle阅读器,高清,无水印。
2019-12-21 19:26:29 3.2MB 重构 mobi
1
重构--改善既有代码的设计_中文版
2016-09-01 00:00:00 1.93MB 重构 设计 mobi
1
重构--改善既有代码的设计,中文版,mobi格式,适合kindle阅读
2015-12-14 00:00:00 1.93MB 重构 mobi kindle
1