tensorflow-deep-learning
tensorflow-deep-learning 是 Zero to Mastery 深度学习课程的全套开源学习资料,旨在帮助学习者从零开始掌握使用 TensorFlow 和 Keras 构建与训练神经网络的核心技能。它系统性地解决了初学者在面对深度学习复杂概念时缺乏结构化路径、实战代码和最新行业实践的痛点,涵盖了从基础理论到计算机视觉、自然语言处理等实际项目的全流程内容。
这套资料非常适合希望转行或提升技能的开发者、数据科学爱好者以及相关专业学生使用。无论你是否具备编程基础,只要对人工智能感兴趣,都能通过它循序渐进地学习。其独特亮点在于不仅提供了完整的 Jupyter 笔记本代码示例,还配套了免费的在线书籍版本和部分公开视频课程,并持续维护更新以适配 TensorFlow 新版本(如 EfficientNetV2 迁移、命名空间调整等),确保所学技术与业界同步。此外,课程设计了丰富的练习题和扩展资源,鼓励动手实践,真正做到“学以致用”。
使用场景
一家初创医疗科技公司的算法工程师小李,正负责开发一个基于 X 光片的肺炎辅助诊断系统,需要在短时间内构建高精度的图像分类模型。
没有 tensorflow-deep-learning 时
- 面对复杂的 TensorFlow API 和 Keras 架构,小李缺乏系统的学习路径,只能在零散的博客和过时的文档中摸索,效率极低。
- 在尝试复现经典的迁移学习(Transfer Learning)策略时,因不熟悉
EfficientNet等预训练模型的正确调用方式,频繁遭遇版本兼容性报错,调试耗时数天。 - 缺乏标准化的项目实战参考,导致数据预处理、模型评估及回调函数设置等关键环节代码规范混乱,模型性能难以稳定复现。
- 遇到自然语言处理(NLP)与视觉结合的多模态需求时,找不到权威的示例代码,只能凭猜测编写逻辑,增加了项目失败风险。
使用 tensorflow-deep-learning 后
- 小李直接跟随课程提供的结构化 Notebook(从基础到进阶),快速掌握了深度学习核心概念,将原本需要数周的自学周期压缩至几天。
- 利用项目中更新及时的迁移学习案例(如针对 TensorFlow 2.13+ 修复后的
EfficientNetV2代码),他迅速解决了环境报错,成功加载预训练权重并微调模型。 - 参考"Food Vision"等里程碑项目的完整代码架构,小李规范了数据管道搭建与模型训练流程,显著提升了诊断模型的准确率和训练稳定性。
- 通过研读 NLP 相关的章节与练习,他顺利实现了病历文本与影像数据的特征融合,快速验证了多模态方案的可行性。
tensorflow-deep-learning 通过提供经过持续维护的实战代码与系统化教程,帮助开发者跨越了从理论到工程落地的巨大鸿沟,大幅缩短了高质量 AI 模型的研发周期。
运行环境要求
- 未说明
未说明 (课程涵盖深度学习与迁移学习,建议配备 NVIDIA GPU 以加速训练,但 README 未指定具体型号或显存要求)
未说明

快速开始
从零开始掌握 TensorFlow 深度学习
从零开始掌握 TensorFlow 深度学习课程 的所有课程资料。
本课程将教你深度学习的基础知识,以及如何使用 TensorFlow/Keras 构建和训练适用于各种问题类型的神经网络。
重要链接
- 🎥 在 YouTube 上观看课程的前 14 小时(notebook 00、01、02):点击这里
- 📖 阅读课程的精美在线书籍版本:点击这里
- 💻 报名参加 Zero to Mastery Academy 的完整课程(notebook 03–10 的视频):点击这里
- 🤔 对课程有疑问?请查看课程发布的直播问答:点击这里
- 📝 使用 [TensorFlow 备忘录] (https://zerotomastery.io/cheatsheets/tensorflow-cheat-sheet/) 快速了解 TensorFlow
本页内容
- 修复与更新
- 课程材料(完成课程所需的一切)
- 课程结构(本课程的教学方式)
- 你是否应该学习这门课程?(通过回答几个简单的问题来决定)
- 先决条件(学习本课程所需的技能)
- 练习与课外资源(用于实践所学内容的挑战及更多学习资源)
- 提问(想了解更多?请在此处提问)
- 状态
- 日志(更新、变更及进度)
修复与更新
- 2024年5月2日 - 更新第11节,以反映 Google 已关闭 TensorFlow 开发者认证项目(详情请参阅 #645)
- 2023年8月18日 - 更新 Notebook 05,修复 #544 和 #553,完整说明请见:https://github.com/mrdbourke/tensorflow-deep-learning/discussions/575
- 简而言之,如果你正在使用
tf.keras.applications.EfficientNetB0并遇到错误,请切换到tf.keras.applications.efficientnet_v2.EfficientNetV2B0
- 简而言之,如果你正在使用
- 2023年5月26日 - 更新 Notebook 08 以适配新版本的 TensorFlow;同时更新 Notebook 09 以适配新版本的 TensorFlow 和 spaCy。09 的更新说明请见:https://github.com/mrdbourke/tensorflow-deep-learning/discussions/557
- 2023年5月19日 - 更新 Notebook 07 以适配新版本的 TensorFlow,并修复模型加载错误(需 TensorFlow 2.13 或更高版本),详情请见:https://github.com/mrdbourke/tensorflow-deep-learning/discussions/550
- 2023年5月18日 - 更新 Notebook 06,以采用新的 TensorFlow 命名空间(功能无重大变化,仅导入语句有所不同),详情请见:https://github.com/mrdbourke/tensorflow-deep-learning/discussions/549
- 2023年5月12日 - Notebook 05 为
tf.keras.layers添加了新的命名空间,详情请见:https://github.com/mrdbourke/tensorflow-deep-learning/discussions/547。此外,还修复了 Notebook 05 中model.load_weights()的问题,详情请见:https://github.com/mrdbourke/tensorflow-deep-learning/issues/544。如果你在保存或加载模型权重时遇到困难,也可参考:https://github.com/mrdbourke/tensorflow-deep-learning/issues/553 - 2023年5月12日 - 较新版本的 TensorFlow(2.10 及以上)在
tf.keras.optimizers中使用learning_rate而非lr(例如:tf.keras.optimizers.Adam(learning_rate=0.001))。旧的lr参数仍可使用,但已被弃用。 - 2021年12月2日 - 为 notebook 02 添加了针对 TensorFlow 2.7.0+ 的修复,详情请见讨论
- 2021年11月11日 - 为 notebook 01 添加了针对 TensorFlow 2.7.0+ 的修复,详情请见讨论
课程材料
下表是课程材料的真实来源。你所需的所有链接都将在此列出。
关键:
- 编号: 目标 notebook 的编号(这可能与课程视频部分不完全一致,但会将表格中的所有材料联系起来)
- Notebook: 包含大量代码和文本注释的特定模块 notebook(视频中的 notebook 均基于这些)
- 数据/模型: 与相应 notebook 相关的数据集或预训练模型的链接
- 练习与课外资源: 每个模块都附有一组练习和课外资源,帮助你巩固技能并深入学习。建议你在进入下一个模块之前先完成这些内容。
- 幻灯片: 尽管我们主要关注编写 TensorFlow 代码,但有时也会使用精美的幻灯片来解释不同的概念,你可以在这里找到它们。
注意: 你可以在 video_notebooks 目录中获取视频中创建的所有 notebook 代码。
课程结构
本课程采用代码优先的教学方式。我们的目标是让你尽快开始编写深度学习代码。
教学遵循以下口诀:
代码 -> 概念 -> 代码 -> 概念 -> 代码 -> 概念
这意味着我们首先编写代码,然后逐步讲解其背后的原理。
如果你有6个月以上的Python编程经验,并且具备强烈的学习意愿(这是最重要的),那么你就能顺利完成这门课程。
你应该参加这门课程吗?
你是否有1年以上的深度学习和TensorFlow编程经验?
如果有,那么你不应该参加这门课程,而是利用你的技能去构建一些实际项目。
如果没有,请继续回答下一个问题。
你是否已经完成过至少一门机器学习入门课程,并希望进一步学习深度学习或如何使用TensorFlow构建神经网络?
如果答案是肯定的,那么这门课程非常适合你。
如果答案是否定的,建议先去学习一门机器学习入门课程。等你决定要学习TensorFlow时,这个页面仍然会在这里。
先修条件
学习这门课程需要掌握哪些知识?
- 6个月以上的Python编程经验。 你能编写一个接受并使用参数的Python函数吗?这就足够了。如果你还不清楚这意味着什么,建议再花一两个月时间练习Python编程,然后再回来学习。
- 至少一门机器学习入门课程。 你是否熟悉训练集、验证集和测试集的概念?你知道什么是监督学习吗?你以前用过pandas、NumPy或Matplotlib吗?如果对这些问题的回答是否定的,建议先学习一门教授这些内容的机器学习入门课程,然后再回来学习本课程。
- 熟练使用Google Colab/Jupyter Notebook。 本课程全程使用Google Colab。如果你从未用过Google Colab,它与Jupyter Notebook非常相似,只是多了一些额外的功能。如果你不熟悉Google Colab笔记本,建议先阅读《Google Colab入门》教程。
- 推荐资源: Zero to Mastery的友好型机器学习入门课程(我也教授这门课程)涵盖了上述所有内容,而本课程正是作为其后续课程设计的。
🛠 练习题 & 📖 课外拓展
为了避免课程内容过于庞大(深度学习领域非常广泛),我们为不同章节推荐了多种外部资源,供你根据自己的兴趣选择深入学习。
练习题的答案可以在extras/solutions/中找到,每组练习题都对应一个Notebook(分别对应00、01、02等)。感谢Ashik Shafi为创建这些解答所付出的努力。
🛠 00. TensorFlow基础练习题
- 使用
tf.constant()创建一个向量、标量、矩阵和张量,数值自选。 - 找出你在第1题中创建的张量的形状、秩和大小。
- 创建两个形状为
[5, 300]、元素随机分布在0到1之间的张量。 - 使用矩阵乘法将第3题中的两个张量相乘。
- 使用点积将第3题中的两个张量相乘。
- 创建一个形状为
[224, 224, 3]、元素随机分布在0到1之间的张量。 - 找出第6题中创建的张量在第一个轴上的最小值和最大值。
- 创建一个形状为
[1, 224, 224, 3]的张量,然后通过squeeze操作将其形状变为[224, 224, 3]。 - 使用你选择的数值创建一个形状为
[10]的张量,然后找出其中最大值的索引。 - 对第9题中的张量进行独热编码。
📖 00. TensorFlow基础课外拓展
- 阅读TensorFlow Python API列表,挑选一个我们在本Notebook中未涉及的API,自行反推其功能(写出对应的文档代码),并弄清楚它的作用。
- 尝试编写一系列张量函数来计算你最近一次的购物账单(可以不用具体商品名称,只用金额数值即可)。
- 你打算如何用张量计算本月和全年的购物支出?
- 阅读TensorFlow 2.x新手快速入门教程,务必亲自敲入所有代码,即使暂时不理解也没关系。
- 我们在此处使用的某些函数是否与该教程中的函数相同?有哪些一致之处?又有哪些是你之前没见过的?
- 观看视频《什么是张量?》(https://www.youtube.com/watch?v=f5liqUk0ZTw)——这是一个非常好的视觉化介绍,帮助你理解我们在本Notebook中讨论的许多概念。
🛠 01. 使用TensorFlow进行神经网络回归练习题
- 创建你自己的回归数据集(或者将我们在“创建数据以查看和拟合”中使用的数据集扩大),并为其构建和拟合模型。
- 尝试构建一个包含4个Dense层的神经网络,并将其拟合到你自己的回归数据集上,看看效果如何。
- 尝试改进我们在保险数据集上得到的结果,你可以尝试以下方法:
- 构建更大的模型(比如使用4个Dense层的效果如何?)。
- 增加每一层的单元数量。
- 查阅Adam优化器的文档,了解其第一个参数的作用,如果将其值提高10倍会发生什么?
- 如果延长训练时间(例如从200轮增加到300轮),结果会有何变化?
- 从TensorFlow的
tf.keras.datasets模块中导入Boston房价数据集,并对其进行建模。
📖 01. 使用TensorFlow进行神经网络回归课外拓展
- MIT深度学习导论第一讲——很好地概述了我们正在运行的所有代码背后的实际原理。
- 阅读:Michael Nielsen所著《神经网络与深度学习》第一章(约1小时)——这是一篇深入且实践性强的文章,有助于理解神经网络的直观原理。
- 为了练习使用TensorFlow进行回归建模,我还鼓励你浏览Kaggle的数据集,寻找一个你感兴趣的回归数据集,并尝试进行建模。
🛠 02. 使用 TensorFlow 进行神经网络分类练习
- 在 TensorFlow Playground 中玩 10 分钟,尝试不同的神经网络设置。特别注意调整学习率:当学习率降低时会发生什么?当学习率升高时又会发生什么?
- 使用 TensorFlow 代码复现下方 TensorFlow Playground 图表 中所示的模型。使用 Adam 优化器、二元交叉熵损失函数和准确率指标编译模型。编译完成后,查看模型摘要。

- 您可以在 TensorFlow Playground 网站 上亲自尝试该网络。提示:网络有 5 层隐藏层,但输出层未在图中显示,您需要根据输入数据决定输出层的结构。
- 使用 Scikit-Learn 的
make_moons()函数创建一个分类数据集,对其进行可视化,然后构建一个能够达到 85% 以上准确率的模型。 - 训练一个模型,在时尚 MNIST 测试集上达到 88% 以上的准确率。训练完成后绘制混淆矩阵以查看结果。
- 在您的代码中重新实现 TensorFlow 的 softmax 激活函数(参考维基百科上的 softmax 函数)。确保该函数可以接受张量,并在其上应用 softmax 函数后返回修改后的张量。
- 创建一个函数或编写代码,同时可视化时尚 MNIST 数据集中多张图像的预测结果。至少同时绘制三张不同图像及其预测标签。提示:可参考 TensorFlow 文档中的 分类教程 获取灵感。
- 编写一个函数,显示时尚 MNIST 数据集中某一类别的图像,并对该图像进行预测。例如,绘制 3 张“T恤”类别的图像及其预测结果。
📖 02. 使用 TensorFlow 进行神经网络分类课外阅读
- 观看 3Blue1Brown 的神经网络系列视频第 2 集:梯度下降:神经网络如何学习。观看完毕后,用 100 字左右总结您学到的内容。
- 如果尚未观看,请先观看第 1 集:什么是神经网络?。注意他们在结尾提到的激活函数。
- 观看 MIT 深度学习导论讲座第 1 讲(如果您尚未观看),以了解线性与非线性函数背后的概念。
- 花 1 小时阅读 Michael Nielsen 的《神经网络与深度学习》一书。
- 阅读 ML-Glossary 关于激活函数的文档。您最喜欢哪种激活函数?
- 阅读完 ML-Glossary 后,通过搜索“tensorflow 激活函数”查看 TensorFlow 中可用的激活函数。
🛠 03. 使用 TensorFlow 进行计算机视觉与卷积神经网络练习
- 花 20 分钟阅读并互动 CNN 解释器网站。
- 请解释关键术语:例如,用自己的话解释卷积和池化。
- 在 CNN 解释器 网站的“理解超参数”部分花 10 分钟进行探索。
- 卷积核大小是什么?
- 步幅是什么?
- 如何在 TensorFlow 代码中调整这些参数?
- 拍摄两种不同物体的 10 张照片,利用我们在此介绍的技术构建您自己的 CNN 图像分类器。
- 为您的 10 类数据集上的简单卷积神经网络模型找到理想的学习率。
📖 03. 使用 TensorFlow 进行计算机视觉与卷积神经网络课外阅读
- 观看: MIT 深度学习导论:计算机视觉 讲座。这将帮助您深入理解卷积神经网络的工作原理。
- 观看: deeplearning.ai 的 小批量梯度下降详解。如果您仍然好奇为什么我们要使用批次来训练模型,这篇技术概述将解答许多相关问题。
- 阅读: CS231n 视觉识别中的卷积神经网络 课程笔记。这将让您深入了解我们所编写的卷积神经网络架构背后的运行机制。
- 阅读: "深度学习中卷积运算指南"。这篇论文详细阐述了卷积层背后的所有数学原理。
- 代码实践: TensorFlow 数据增强教程。如需更深入地了解 TensorFlow 中的数据增强技术,可花一到两个小时阅读该教程。
🛠 04. TensorFlow 中的迁移学习 第1部分:特征提取练习
- 使用我们现有的数据,但采用 TensorFlow Hub 中的 MobileNetV2 架构进行特征提取(
mobilenet_v2_100_224/feature_vector),构建并训练一个模型。与我们之前的其他模型相比,它的性能如何? - 列出 TensorFlow Hub 上尚未使用过的3种不同的图像分类模型。
- 构建一个模型,用于分类你拍摄的两种不同事物的图片。
- 你可以选择 TensorFlow Hub 上任何你喜欢的特征提取层来完成这个任务。
- 每个类别的图片数量应至少为10张,例如,要构建冰箱与烤箱的分类器,你需要10张冰箱的图片和10张烤箱的图片。
- 目前在 ImageNet 数据集上表现最好的模型是什么?
- 提示:你可以查看 sotabench.com 获取相关信息。
📖 04. TensorFlow 中的迁移学习 第1部分:特征提取课外拓展
- 阅读 TensorFlow 迁移学习指南,用自己的话定义迁移学习的两种主要类型。
- 浏览 TensorFlow 官网上的 使用 TensorFlow Hub 进行迁移学习教程,将所有代码重新编写到一个新的 Google Colab 笔记本中,并在每一步旁边添加注释,说明该步骤的作用。
- 在本笔记本中我们尚未介绍 TensorFlow Hub 的微调方法,但如果你想了解更多,请阅读 TensorFlow 官网上关于 微调 TensorFlow Hub 模型的教程。如何微调 TensorFlow Hub 模型:
- 了解 Weights & Biases 实验跟踪工具,你如何将其与我们现有的 TensorBoard 日志集成?
🛠 05. TensorFlow 中的迁移学习 第2部分:微调练习
- 使用特征提取方法,以
tf.keras.applications.EfficientNetB0作为基础模型,在 Food Vision 数据集的10%上训练一个迁移学习模型,共10个 epoch。使用ModelCheckpoint回调函数将权重保存到文件。 - 对你在第2题中训练的基础模型的最后20层进行微调,再训练10个 epoch。结果如何?
- 对你在第2题中训练的基础模型的最后30层进行微调,再训练10个 epoch。结果如何?
- 编写一个函数,用于从任意数据集(训练集或测试集)和任意类别(如“牛排”、“披萨”等)中可视化一张图片,并使用训练好的模型对其进行预测。
📖 05. TensorFlow 中的迁移学习 第2部分:微调课外拓展
- 阅读 TensorFlow 中关于 数据增强的文档。
- 阅读 ULMFit 论文(技术性内容),了解冻结和解冻不同层的概念。
- 学习学习率调度的相关知识(TensorFlow 提供了 LearningRateScheduler 回调函数),它将如何影响我们的模型训练?
- 如果你计划训练更长时间,可能需要逐步降低学习率……越接近“山谷底部”,步伐就应该越小。可以想象一下,在沙发底下找到一枚硬币的过程:刚开始时手臂的动作会比较大,而越靠近硬币,动作就越小。
🛠 06. TensorFlow 中的迁移学习 第3部分:扩展练习
- 自己拍摄3张食物照片,使用训练好的模型对它们进行预测,在 Discord 上与其他同学分享你的预测结果,秀一秀你的 Food Vision 模型吧!🍔👁
- 使用相同的数据,训练一个基于特征提取的迁移学习模型,共10个 epoch;然后将其性能与一个先进行5个 epoch 特征提取、再进行5个 epoch 微调的模型(就像我们在本笔记本中使用的那样)进行比较。哪种方法更好?
- 使用
mixed_precision开启混合精度训练,重新创建第一个模型(即特征提取模型)。
- 混合精度训练是否能使模型训练速度更快?
- 它是否会影响模型的准确率或性能?
- 使用混合精度训练有哪些优势?
📖 06. TensorFlow 中的迁移学习 第3部分:扩展课外拓展
- 花15分钟阅读 EarlyStopping 回调函数。它有什么作用?我们如何在模型训练中使用它?
- 花1个小时阅读关于 Streamlit 的资料。它能做什么?你如何将本笔记本中的一些内容整合到一个 Streamlit 应用程序中?
🛠 07. 阶段性项目 1:🍔👁 Food Vision Big™ 练习
注: 阶段性项目 1 的主要任务是完成 阶段性项目 1 模板笔记本 中的“TODO”部分。完成后,请继续进行以下内容。
- 对大规模 Food Vision 模型使用与上一个笔记本(迁移学习第 3 部分:扩展规模)中相同的评估方法。具体来说,建议查看:
- 模型所有预测与真实标签之间的混淆矩阵。
- 展示每个类别 F1 分数的图表。
- 可视化模型对各类图像的预测结果,并将预测与真实标签进行对比。
- 例如,绘制测试数据集中的某张样本图像,并在图标题中显示预测结果、预测概率以及真实标签。
- 注意: 为了将预测标签与测试标签进行比较,在加载测试数据时,可以将
shuffle=False设置为真,以保持测试数据的顺序与预测标签的顺序一致。
- 自己拍摄 3 张食物照片,并使用 Food Vision 模型对这些图片进行预测。效果如何?请与其他同学分享你的图片和预测结果。
- 重新训练本笔记本中使用的模型(特征提取和微调),但这次将基础模型从
EfficientNetB0替换为EfficientNetB4。你是否观察到性能有所提升?训练时间是否更长?有哪些需要权衡的地方? - 请说出混合精度训练的一个重要优势,并说明这一优势是如何实现的?
📖 07. 阶段性项目 1:🍔👁 Food Vision Big™ 课外拓展
- 阅读有关学习率调度以及 学习率调度回调函数 的资料。它是什么?对本项目有何帮助?
- 阅读有关 TensorFlow 数据加载器的内容(提升 TensorFlow 数据加载性能)。我们是否遗漏了什么?在使用 TensorFlow 加载数据时,你通常会注意哪些方法?提示:查看页面底部的总结部分,那里有很好的思路汇总。
- 阅读关于 TensorFlow 混合精度训练 的文档。在使用混合精度训练时,需要注意哪些关键点?
🛠 08. TensorFlow 中自然语言处理(NLP)入门练习
- 使用 Keras 顺序 API 而不是函数式 API,重新构建、编译并训练
model_1、model_2和model_5。 - 使用 10% 的训练数据重新训练基线模型。与使用 10% 训练数据的通用句子编码器模型相比,其性能如何?
- 尝试通过在实例化为 Keras 层时将
training=True设置为真,来微调 TF Hub 通用句子编码器模型。
# 我们可以用这个编码层代替文本向量化器和嵌入层
sentence_encoder_layer = hub.KerasLayer("https://tfhub.dev/google/universal-sentence-encoder/4",
input_shape=[],
dtype=tf.string,
trainable=True) # 将训练设置为真,以微调 TensorFlow Hub 模型
- 使用整个训练集(不划分验证集)重新训练目前为止表现最好的模型。然后使用该模型对测试数据集进行预测,并将预测结果格式化为与 Kaggle 的
sample_submission.csv文件相同的格式(可在 Colab 的“文件”选项卡中查看sample_submission.csv文件的样式)。完成后,请尝试 提交到 Kaggle 竞赛,你的模型表现如何? - 使用多数投票法(众数)组合集成预测结果,这种方法与平均各模型预测概率相比,性能如何?
- 使用表现最佳的模型在验证集上的预测结果及其对应的验证集真实标签,绘制混淆矩阵。
📖 08. TensorFlow 中的自然语言处理(NLP)简介——课外拓展
为了实践你所学到的知识,一个不错的想法是花一小时分别完成以下三项任务(总共三小时,当然如果你愿意也可以全部做完),然后写一篇博客文章总结你的学习成果。
- 要了解 NLP 领域中的各类问题及其解决方法,请阅读:
- 观看 MIT 的循环神经网络讲座。这将极大地补充你对之前构建的 RNN 模型内部机制的理解。
- 阅读 TensorFlow 官网上的词嵌入页面。词嵌入在 NLP 中占据非常重要的地位。虽然我们在本笔记本中已经涉及过相关内容,但再多一些练习仍然非常值得。一个不错的练习是将该指南中的所有代码重新编写到一个新的笔记本中。
- 如果你想深入了解 TensorFlow 中的 RNN,可以阅读并复现 TensorFlow RNN 指南。我们已经讨论过该指南中的许多概念,但亲自再写一遍代码仍然很有意义。
- 文本数据并不总是像我们下载的数据那样整齐。因此,如果你想了解更多关于如何为 TensorFlow 深度学习模型准备不同来源的文本数据,可以参考以下内容:
- TensorFlow 文本加载教程
- Real Python 的 使用 Python 读取文本文件
- 本笔记本主要关注 NLP 代码的编写。若想从数学角度深入了解深度学习在 NLP 中的应用,可以阅读 斯坦福大学《深度学习自然语言处理》讲义第一部分。
- 如果想要更深入的学习,甚至可以选修整个 CS224n 课程(深度学习自然语言处理)。
- 值得阅读的优秀博客文章:
- Andrei Karpathy 的 RNN 的不合理有效性 探讨了如何利用 RNN 生成莎士比亚风格的文本。
- Mauro Di Pietro 的 NLP 文本分类:TF-IDF vs Word2Vec vs BERT,概述了将文本转换为数值并进行分类的不同技术。
- Machine Learning Mastery 的 什么是词嵌入?
- 其他值得探索的主题:
- 注意力机制。这是 Transformer 架构的基础组成部分,通常也能提升深度 NLP 模型的性能。
- Transformer 架构。这种模型架构近年来在 NLP 领域风靡一时,在许多基准测试中都达到了最先进水平。不过,它的运行需要更多的计算资源,HuggingFace Models(原 HuggingFace Transformers)库可能是你快速上手的最佳选择。
🛠 09. 阶段性项目 2:SkimLit 📄🔥 练习
- 使用训练数据集中的所有数据训练
model_5,直到其性能不再提升为止。由于这可能需要较长时间,你可以使用以下工具:
tf.keras.callbacks.ModelCheckpoint来保存模型的最佳权重。tf.keras.callbacks.EarlyStopping在验证损失连续约 3 个 epoch 不再改善时停止训练。
- 查看 Keras 关于使用预训练 GloVe 词嵌入的指南。你能否将其应用到我们的某个模型中?
- 提示:你需要将其与自定义的 Embedding 层结合使用。
- 是否对 GloVe 词嵌入进行微调或保持冻结状态由你决定。
- 尝试将 TensorFlow Hub 的通用句子编码器预训练词嵌入替换为 TensorFlow Hub BERT PubMed 专家(一种基于 PubMed 文本预训练的语言模型)的预训练词嵌入。这样做会对结果产生影响吗?
- 注意:使用 BERT PubMed 专家预训练词嵌入需要对序列进行额外的预处理步骤(详见 TensorFlow Hub 指南)。
- BERT 模型的效果是否优于这篇论文中提到的结果?https://arxiv.org/pdf/1710.06071.pdf
- 如果我们将每个序列的
line_number和total_lines特征合并会怎样?例如,创建一个X_of_Y特征?这会影响模型性能吗?
- 另一个例子:
line_number=1且total_lines=11可以变为line_of_X=1_of_11。
- 编写一个函数(或一组函数),用于接收一段摘要文本,按与模型训练相同的方式对其进行预处理,对摘要中的每个序列进行预测,并以如下格式返回摘要:
PREDICTED_LABEL:SEQUENCEPREDICTED_LABEL:SEQUENCEPREDICTED_LABEL:SEQUENCEPREDICTED_LABEL:SEQUENCE- …
- 你可以从 PubMed 中找到自己的非结构化 RCT 摘要,或者尝试使用这篇摘要:巴氯芬促进伴有丙型肝炎病毒感染的酒精依赖性肝硬化患者的戒酒。
📖 09. 阶段性项目 2:SkimLit 📄🔥 课外拓展
- 若想进一步学习文本处理和 spaCy 的使用,可以参考 spaCy 的高级 NLP 课程。如果你将来要处理生产级别的 NLP 问题,很可能会用到 spaCy。
- 为了从另一个角度了解如何解决类似我们刚刚经历过的文本分类问题,建议你学习 Google 的文本分类机器学习课程。
- 由于我们的数据集存在类别不平衡(许多真实世界的数据集也存在类似问题),因此值得查阅 TensorFlow 关于处理类别不平衡数据的训练方法指南。
🛠 第10课:时间序列基础与里程碑项目3:BitPredict 💰📈 练习
- 对于单变量/多变量数据,进行数据归一化是否有帮助?(例如,将所有值缩放到0到1之间)
- 尝试对一个单变量模型(如
model_1)和一个多变量模型(如model_6)进行归一化处理,观察是否会影响模型的训练或评估结果。
- 获取最新的比特币数据,训练一个模型并观察效果(我们的数据截至2021年5月18日)。
- 你可以从coindesk.com/price/bitcoin免费下载比特币历史数据,点击“Export Data” -> “CSV”即可。
- 我们大多数模型都使用了
WINDOW_SIZE=7,但是否存在更优的窗口大小呢?
- 设计一系列实验,以确定是否存在更好的窗口大小。
- 例如,可以训练10个不同的模型,设置
HORIZON=1,但窗口大小分别从2到12不等。
- 使用
tf.keras.preprocessing.timeseries_dataset_from_array()创建一个与我们用于model_1相同的滑动窗口数据集,并用重新创建的数据集重新训练model_1。 - 在我们的多变量建模实验中,我们添加了比特币区块奖励大小作为额外特征,使时间序列变为多变量。
- 你认为还可以添加哪些其他特征?
- 如果有,请尝试加入这些特征,看看它们对模型有何影响?
- 为未来的预测生成预测区间。一种方法是使用全部数据训练一个集成模型,用该模型进行未来预测,然后像我们对
model_8那样计算集成模型的预测区间。 - 对于未来预测,尝试先做一个预测,然后用这个预测结果重新训练模型,再做下一个预测、重新训练模型,如此循环往复。绘制结果图,与每次预测都不重新训练模型的情况(
model_9)相比,结果有何不同? - 在本笔记本中,我们只尝试了自己实现的算法。不过,不妨也看看专门用于预测的算法表现如何。
- 尝试在建模实验部分列出的额外算法之一,例如:
- Facebook的Kats库 - 这里包含许多模型,记住机器学习从业者的座右铭:实验、实验、实验。
- LinkedIn的Greykite库
📖 第10课:时间序列基础与里程碑项目3:BitPredict 💰📈 课外拓展
我们在时间序列预测和时间序列建模方面仅仅触及了皮毛。不过好消息是,你已经积累了丰富的动手编码经验。
如果你想更深入地探索时间序列领域,我推荐以下资源:
- Forecasting: Principles and Practice 是一本优秀的在线教材,详细讨论了时间序列预测中的许多重要概念。我特别建议完整阅读第1章。
- 我强烈推荐至少阅读第1章以及关于预测准确度衡量标准的那一章。
- 🎥 Markus Loning的机器学习与时间序列导论讲解了不同类型的时间序列问题及其解决方法。该视频主要基于
sktime库(面向时间序列的Scikit-Learn),但其中的原则同样适用于其他场景。 - Isaac Faber的为什么你应该关注Nate Silver与Nassim Taleb的推特大战是一篇精彩的讨论文章,深入探讨了不确定性在选举预测中的作用。
- TensorFlow时间序列教程 - 介绍如何使用TensorFlow预测天气时间序列数据。
- 📕 Nassim Nicholas Taleb的黑天鹅 - Nassim Taleb曾是一名自营交易员,从事交易工作长达25年。这本书汇集了他从亲身经历中总结出的诸多教训,彻底改变了我对预测能力的看法。
- Skander Hannachi博士的让经验丰富的机器学习从业者感到惊讶的3个时间序列预测事实 - 时间序列数据与其他类型的数据有所不同。如果你之前主要从事其他类型的机器学习任务,进入时间序列领域可能需要一些调整。Hannachi概述了其中最常见的3点。
- 🎥 Jordan Kern的世界级讲座,观看这些课程可以帮助你从零开始掌握时间序列问题:
TensorFlow开发者认证(存档)
注:自2024年5月1日起,TensorFlow开发者认证已不再提供购买。经与TensorFlow认证团队联系后,他们表示该项目已关闭,目前尚无明确的后续计划(详情请参阅#645)。
鉴于此,以下练习和课外拓展内容仅作存档之用。课程的其他材料仍然有效。
🛠 11. 通过 TensorFlow 开发者认证练习(存档)
准备工作:大脑
- 阅读《TensorFlow 开发者认证考生手册》(链接)。
- 浏览《TensorFlow 开发者认证考生手册》中的技能清单部分,并创建一个涵盖所有所需技能的笔记本,为每项技能编写代码。这个笔记本可以在考试期间作为参考。
示例:将 TensorFlow 开发者认证考生手册中的技能清单部分映射到笔记本中。
准备工作:电脑
- 参考 PyCharm 快速入门教程,确保熟悉 PyCharm 的使用(考试使用 PyCharm,可下载免费版本)。
- 阅读并按照《TensorFlow 开发者认证考试准备指南》中的建议步骤操作(链接)。
- 完成上述步骤后,在 PyCharm 中确保能够用 TensorFlow 训练模型。GitHub 上提供的示例脚本
image_classification_test.py中的模型和数据集应该足够了。如果能在 5–10 分钟内完成模型训练并保存,说明你的电脑性能足以应对考试中的模型训练任务。- 在参加考试前,请务必在本地 PyCharm 环境中积累运行模型的经验。Google Colab(我们在课程中使用的工具)与 PyCharm 有些不同。
在参加考试前,请确保能够在本地 PyCharm 环境中运行 TensorFlow 代码。如果示例脚本 image_class_test.py(链接)能在你的本地机器上于 5–10 分钟内完整运行,则说明你的本地设备可以应对考试;若无法满足要求,也可使用 Google Colab 进行模型训练、保存及下载,以提交至考试。
📖 11. 通过 TensorFlow 开发者认证的课外补充材料(存档)
如果你想进一步提升 TensorFlow 和深度学习相关技能,或为考试做更充分的准备,我强烈推荐以下资源:
- 📄 阅读: 我是如何获得 TensorFlow 开发者认证的(以及你也可以做到)
- 🎥 观看: 我是如何通过 TensorFlow 开发者认证考试的(以及你也可以做到)
- 学习 Coursera 上的 TensorFlow 实战专项课程
- 阅读《动手学机器学习:使用 Scikit-Learn、Keras 和 TensorFlow》第 2 版的后半部分(链接)
本课程未涵盖的内容
深度学习是一个非常广泛的主题,因此本课程不可能面面俱到。
以下是一些你可能希望进一步探索的主要领域:
- Transformer 模型(席卷自然语言处理领域的神经网络架构)
- 多模态模型(同时利用文本和图像等多种数据源的模型)
- 强化学习
- 无监督学习
课程之外的进阶学习方向
- 迈克尔·尼尔森的《神经网络与深度学习》一书(链接)——如果 Zero to Mastery 的 TensorFlow 深度学习课程是从上往下讲解,那么这本书则是从下往上构建知识体系,是极佳的补充资源。
- Deeplearning.AI 的专项课程——Zero to Mastery 的 TensorFlow 课程侧重于代码实践,而 Deeplearning.AI 的专项课程则会深入讲解代码背后的原理。
- 《Hands-On Machine Learning with Scikit-Learn, Keras and TensorFlow》一书(尤其是后半部分)——本课程中的许多内容都受到这本优秀教材的启发和指导。
- Full Stack Deep Learning——学习如何将你的模型转化为基于机器学习的应用程序。
- Made with ML 的 MLOps 资料(链接)——类似于 Full Stack Deep Learning,但以更细粒度的小课程形式呈现,覆盖构建全栈式机器学习应用所需的各个环节(数据收集、标注、部署等)。
- fast.ai 课程体系(链接)——在线上最好的(也是免费的)人工智能/深度学习课程之一。无需多言。
- 丹尼尔·伯克的文章“像我这样的初学者数据科学家如何积累经验?”(链接)——阅读这篇文章,了解如何在在线学习或大学毕业后为求职积累经验(先开始工作,再正式入职)。
提问交流
日志
- 2024年5月2日 - 更新材料,以反映谷歌已关闭 TensorFlow 开发者认证考试(更多信息请参阅 #645)
- 2023年5月12日 - 为最新版本的 TensorFlow 更新了多份课程笔记本,并对第05课的几个 API 进行了更新:https://github.com/mrdbourke/tensorflow-deep-learning/discussions/547
- 2021年12月2日 - 在第02课笔记本中添加了针对 TensorFlow 2.7 的修复
- 2021年11月11日 - 在第01课笔记本中添加了针对 TensorFlow 2.7 的修复
- 2021年8月14日 - 添加了一篇关于 TensorFlow 2.6 更新及 EfficientNetV2 注意事项的讨论:https://github.com/mrdbourke/tensorflow-deep-learning/discussions/166
- 2021年7月16日 - 向 ZTM Academy 和 Udemy 版本的课程中新增了35个视频,内容涉及时间序列以及如何通过 TensorFlow 开发者认证
- 2021年7月10日 - 向 ZTM Academy 和 Udemy 版本的课程中新增了29个经过编辑的时间序列视频,后续还将继续增加
- 2021年7月7日 - 录制了5个关于通过 TensorFlow 开发者认证考试部分的视频——课程的所有视频均已录制完毕!!!接下来就是剪辑和上传了!🎉
- 2021年7月6日 - (已归档)添加了 TensorFlow 认证考试指南:https://github.com/mrdbourke/tensorflow-deep-learning/blob/main/11_passing_the_tensorflow_developer_certification_exam.md ——明天将开始录制相关视频
- 2021年7月5日 - 正在准备 TF 认证考试的相关材料(内容、原因及方法)
- 2021年7月2日 - 时间序列部分的视频录制工作终于完成!!!!! 现在可以开始上传了
- 2021年6月30日 - 录制了12个时间序列部分的视频,总数已超过60个(这是迄今为止最大的章节),几乎接近完成!!!
- 2021年6月29日 - 录制了10个时间序列部分的视频,总数正朝着60个迈进
- 2021年6月28日 - 录制了10个时间序列部分的视频,下方标注总共有40个视频,但实际上可能接近50个
- 2021年6月26日 - 录制了4个时间序列部分的视频,预计整个部分大约会有40个视频
- 2021年6月25日 - 录制了8个时间序列部分的视频,并修复了时间序列笔记本中的大量错别字
- 2021年6月24日 - 录制了14个时间序列部分的视频,明天还将继续录制更多
- 2021年6月23日 - 完成了向时间序列笔记本中添加图片的工作,现在可以开始录制视频了
- 2021年6月22日 - 向时间序列笔记本中添加了大量的图片,并开始制作幻灯片
- 2021年6月21日 - 时间序列笔记本的代码已经完成,接下来将制作幻灯片和图片,为录制做准备
- 2021年6月19日 - 将课程大纲整理成在线书籍,您可以在这里阅读:https://dev.mrdbourke.com/tensorflow-deep-learning/
- 2021年6月18日 - 向时间序列笔记本中添加练习、课外内容和提纲
- 2021年6月17日 - 在时间序列笔记本中添加了关于火鸡问题和模型比较的注释,下一步是制作提纲和图片
- 2021年6月16日 - 在时间序列笔记本中添加了关于不确定性及未来预测的注释,接下来将处理火鸡问题
- 2021年6月14日 - 添加了关于集成的注释,随后开始讲解预测区间
- 2021年6月10日 - 完成了 N-BEATS 算法的注释,接下来将进入集成和预测区间的部分
- 2021年6月9日 - 为时间序列笔记本添加了关于 N-BEATS 算法实现的注释
- 2021年6月8日 - 向时间序列笔记本中添加注释,原计划本周末全部完成(但未能如期完成)
- 2021年6月4日 - 继续更新时间序列笔记本中的注释,一点一滴地推进!
- 2021年6月3日 - 向时间序列笔记本中添加了大量的注释和解释,进展顺利,后续还将继续补充!
- 2021年6月2日 - 开始添加解释代码及更多学习资源的注释,未来几天将继续进行
- 2021年6月1日 - 向时间序列笔记本中添加了火鸡问题,并清理了一部分代码,初步代码已就绪,接下来将编写注释和解释
- 2021年5月28日 - 向时间序列笔记本中添加了未来预测、集成模型以及预测区间
- 2021年5月25日 - 向时间序列笔记本中添加了多元时间序列,并修复了 LSTM 模型,接下来将引入 TensorFlow 的窗口化技术,并尝试不同的窗口大小
- 2021年5月24日 - 修复了时间序列笔记本中损坏的预处理函数,LSTM 模型仍存在问题,后续还将继续补充内容
- 2021年5月20日 - 继续创作时间序列相关内容
- 2021年5月19日 - 继续创作时间序列相关内容,其中大部分内容在 Twitch 上直播:https://twitch.tv/mrdbourke
- 2021年5月18日 - 添加了时间序列预测笔记本的大纲(第10课笔记本),接下来将大幅增加相关内容
- 2021年5月12日 - 第09课的所有视频现已在 Udemy 和 ZTM 上发布!!!尽情享受 SkimLit 的构建过程吧 📄🔥
- 2021年5月11日 - 第08课和第09课共计40余条视频已在 Udemy 和 ZTM 上发布!!!
- 2021年5月10日 - 时间序列相关内容的研究与准备工作
- 2021年5月8日 - 时间序列相关内容的研究与准备工作
- 2021年5月5日 - 第08课约有20余条视频已完成编辑,第09课则有10余条视频完成编辑,目前时间序列相关内容处于初稿阶段
- 2021年5月4日 - 修复了第08课剩余视频中的音频缺失问题,接下来将着手制作时间序列相关内容!
- 2021年5月3日 - 重新录制了第08课中的10条视频,解决了声音问题,这些视频将直接进入后期制作,预计本周末即可上线
- 2021年5月2日 - 发现第08课第09至第20条视频存在无音频的问题,计划重新录制这些视频
- 2021年4月29日 - 🚀🚀🚀 在 Udemy 上正式上线!!!🚀🚀🚀
- 2021年4月22日 - 第09课的视频录制工作已全部完成!添加了幻灯片并完善了第09课的视频笔记本
- 2021年4月21日 - 录制了14条第09课的视频!今天真是超棒的一天!距离完成第09课又近了一步
- 2021年4月20日 - 录制了10条第09课的视频
- 2021年4月19日 - 录制了9条第09课的视频
- 2021年4月16日 - 第09课的幻灯片已准备完毕,可以开始录制了!
- 2021年4月15日 - 为第08课添加了幻灯片、课外内容、练习题以及视频笔记本,同时开始制作第09课的幻灯片,预计明天就能完成
- 2021年4月14日 - 录制了12条第08课的视频,该章节已告一段落!接下来将制作第09课的幻灯片并投入录制
- 2021年4月10日 - 录制了4条第08课的视频
- 2021年4月9日 - 录制了6条第08课的视频
- 2021年4月8日 - 录制了10条第08课的视频!明天还将继续录制更多!最后冲刺阶段到了!!!
- 2021年4月7日 - 向第08课笔记本中添加了大量的图片,为明天的录制做好了准备!
- 2021年4月1日 - 添加了第09课:SkimLit,几乎已完成,稍作整理后就可以开始制作幻灯片了!
- 2021年3月31日 - 添加了第08课笔记本,计划明天完成,随后进入第09课
- 2021年3月24日 - 录制了8条第07课的视频,已全部完成!接下来将制作第08课和第09课的相关材料(幻灯片/笔记本)
- 2021年3月23日 - 录制了6条第07课的视频(终于完成了!),计划明天完成
- 2021年3月22日 - 对第07课笔记本进行了润色,使其适合录制,并制作了第07课的幻灯片,还添加了一个模板供学生练习使用,现在可以开始录制了!
- 2021年3月17日 - 第07课笔记本已完成99%,并添加了指向课程前14小时视频的链接(第一部分10小时,第二部分4小时)
- 2021年3月11日 - 向第07课笔记本中添加了更多的文字注释,计划明天完成,随后再制作幻灯片
- 2021年3月10日 - 向第07课笔记本中输入了大量的解释性文字,明天将继续
- 2021年3月9日 - 修复了第07课笔记本中的大量代码,现在应该能够从头到尾流畅运行(不过加载时间仍然是一个问题)
- 2021年3月5日 - 添加了第07课的草稿笔记本(其中包含许多数据加载和模型训练方面的改进),计划在未来几天内进一步完善
- 2021年3月1日 - 为第06课添加了幻灯片(可在此查看:https://github.com/mrdbourke/tensorflow-deep-learning/blob/main/slides/06_transfer_learning_with_tensorflow_part_3_scaling_up.pdf)
- 2021年2月26日 - 🚀 正式上线!!!同时也完成了第06课视频的录制,接下来将进入第07课、第08课和第09课的录制阶段
- 2021年2月24日 - 录制了9条第06课的视频,即将发布!!!
- 2021年2月23日 - 为发布做准备,重新整理了 GitHub 仓库 🚀
- 2021年2月18日 - 录制了8条第05课的视频……终于完成了!接下来将对 GitHub 仓库进行最后的润色
- 2021年2月17日 - 录制了10条第05课的视频!计划明天完成 🚀
- 2021年2月16日 - 对第05课的幻灯片进行了润色,并开始录制视频,目前已完成了7条第05课的视频
- 2021年2月15日 - 第04课的视频录制工作已完成,现在正在准备录制第05课!
- 2021年2月12日 - 录制了7条第04课的视频……原本希望录满10条,但先凑齐7条也行(🤔 类似的情况似乎之前也发生过)
- 2021年2月11日 - 无进展 - 为 斯坦福大学 CS329s 课程 提供了机器学习部署教程(使用了本课程中的模型代码!!!)——完整教程材料请见此处
- 2021年2月8日 - 录制了10条第03课的视频……第03课也完成了!🚀 接下来将进入第04课
- 2021年1月30日至2月7日:无进展(正在为 斯坦福大学 CS329s 课程 准备机器学习部署讲座……后续再详细说明)
- 2021年1月29日 - 录制了9条第03课的视频……比昨天更接近10条,但仍差一步
- 2021年1月28日 - 录制了7条第03课的视频……原本希望录满10条,但先凑齐7条也可以
- 2021年1月27日 - 录制了10条第03课的视频
- 2021年1月26日 - 对 GitHub 仓库的 README 文件(即您当前所看到的内容)进行了美化,添加了一张漂亮的表格:https://github.com/mrdbourke/tensorflow-deep-learning#course-materials
- 2021年1月23日 - 第06课的幻灯片制作完成
- 2021年1月22日 - 完成了第06课笔记本的审核,并开始制作第06课的幻灯片
- 2021年1月21日 - 第05课的幻灯片制作完成,并开始审核第06课
- 2021年1月20日 - 第05课笔记本已完成,其幻灯片也完成了95%
- 2021年1月19日 - 找到了一种在课程期间存储数据的方案(使用与 Colab 笔记本同区域的 Google 存储服务,既便宜又快速)
- 2021年1月18日 - 审核了第05课笔记本及其幻灯片
- 2021年1月17日 - 第04课笔记本及其幻灯片制作完成
- 2021年1月16日 - 审核了第04课笔记本,并制作了关于迁移学习的幻灯片
- 2021年1月13日 - 再次审核了第03课笔记本,并完成了第03课的幻灯片制作。README 文件也进行了重大更新,第03课已完成99%,现在只需确定最佳的数据传输方式(例如,当学生下载时,中途应将数据存放在哪里?Dropbox?S3?
GS(太贵了)) - 2021年1月11日 - 审核了第03课笔记本,已完成95%,接下来将制作第03课的幻灯片
- 2021年1月9日 - 我回来了!第02课的所有视频录制工作已完成,接下来将制作第03课、第04课和第05课的幻灯片及相关材料(之后我才会回到实验室)
- 2020年12月19日 - 暂停(因家庭度假,暂停至2021年1月2日)
- 2020年12月18日 - 第02课的视频录制已完成75%
- 2020年12月17日 - 第02课的视频录制已完成50%
- 2020年12月16日 - 第01课的视频录制已完成100%
- 2020年12月15日 - 第01课的视频录制已完成90%
- 2020年12月9日 - 完成了第00课视频的录制
- 2020年12月8日 - 第00课的视频录制已完成90%
- 2020年12月5日 - 使用第00课的素材试录了约6条视频
- 2020年12月4日 - 在衣柜里搭建了一个录音棚:https://raw.githubusercontent.com/mrdbourke/tensorflow-deep-learning/main/images/misc-studio-setup.jpeg
- 2020年12月3日 - 第02课笔记本已完成,第02课的幻灯片也制作完毕,现在可以开始搭建录音棚了
- 2020年12月2日 - 第02课笔记本已完成95%,第02课的幻灯片也已完成90%
- 2020年12月1日 - 添加了第02课笔记本(已打磨90%),开始准备第02课的幻灯片
- 2020年11月27日 - 对第01课笔记本进行了打磨,并制作了第01课的幻灯片
- 2020年11月26日 - 对第00课笔记本进行了打磨,并制作了第00课的幻灯片
常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。