![]()
内容推荐 PyTorch 是基于 Torch 库的开源机器学习库,它主要由 Meta(原 Facebook)的人工智能研究实验室开发,在自然语言处理和计算机视觉领域都具有广泛的应用。本书介绍了简单且经典的入门项目,方便快速上手,如 MNIST数字识别,读者在完成项目的过程中可以了解数据集、模型和训练等基础概念。本书还介绍了一些实用且经典的模型,如 R-CNN 模型,通过这个模型的学习,读者可以对目标检测任务有一个基本的认识,对于基本的网络结构原理有一定的了解。另外,本书对于当前比较热门的生成对抗网络和强化学习也有一定的介绍,方便读者拓宽视野,掌握前沿方向。 本书适合人工智能、机器学习、深度学习方面的人员阅读,也适合其他 IT 方面从业者,另外,还可以作为相关专业的教材。 目录 第1章 ?数字识别 1.1 MNIST数据集 1.1.1 MNIST 数据集简介 1.1.2 导入数据集 1.2 构建模型 1.2.1 定义神经网络 1.2.2 前向传播 1.2.3 计算损失 1.2.4 反向传播与更新参数 1.3 开始训练 1.4 观察模型预测结果 1.5 总结 第2章 ?ImageNet图像识别模型与CIFAR- 2.1 图像分类器 2.1.1 CIFAR-10数据集简介 2.1.2 加载数据集 2.1.3 定义卷积神经网络 2.1.4 定义损失函数和优化器 2.1.5 训练网络 2.1.6 使用测试集评估 2.1.7 使用GPU加速 2.2 ImageNet和图像识别模型 2.2.1 ImageNet 2.2.2 基于 ImageNet 的图像识别模型 2.3 总结 第3章 ?从零构建图像分类模型 3.1 预训练模型原理 3.1.1 状态字典 3.1.2 通过设备保存 3.2 加载ImageNet预训练模型 3.3 准备数据 3.3.1 加载数据集 3.3.2 使用matplotlib可视化数据 3.4 开始训练 3.5 使用torchvision微调模型 3.6 观察模型预测结果 3.7 固定模型的参数 3.8 使用tensorbord可视化训练情况 3.9 总结 第4章 ?文本生成 4.1 RNN原理及其结构 4.1.1 经典RNN结构 4.1.2 N VS 1 式RNN结构 4.1.3 1 VS N RNN结构 4.1.4 N VS M RNN结构 4.2 明确任务 4.3 准备数据 4.4 构建模型 4.5 开始训练 4.6 观察交互结果 4.7 总结 第5章 ?目标检测和实例分割 5.1 快速了解目标检测 5.1.1 评估方法 5.1.2 直观方法 5.2 R-CNN系列模型的原理 5.2.1 R-CNN原理 5.2.2 Fast R-CNN原理 5.2.3 Faster R-CNN原理 5.2.4 Mask R-CNN原理 5.3 使用torchvison微调模型 5.3.1 使用Penn-Fudan数据集 5.3.2 搭建目标检测模型 5.3.3 下载必要的工具文件 5.3.4 改造模型以适应新的数据集 5.3.5 调用工具文件训练模型 5.3.6 评估和测试模型 5.4 总结 第6章 ?人脸检测与识别 6.1 模型介绍 6.2 facenet-pytorch库 6.3 预训练模型 6.4 总结 第7章 ?利用DCGAN生成假脸 7.1 GAN及其原理 7.2 DCGAN简介 7.3 实现一个假脸生成模型 7.3.1 模型设定 7.3.2 人脸数据集 7.3.3 实现生成器 7.3.4 实现判别器 7.3.5 损失函数和优化器 7.4 训练假脸生成模型 7.4.1 训练的整体流程 7.4.2 更新判别器 7.4.3 更新生成器 7.5 可视化结果 7.6 总结 第8章 ?pix2pix为黑白图片上色 8.1 带约束的生成对抗网络 8.2 pix2pix的原理 8.3 实现图到图翻译模型 8.3.1 Facade数据集 8.3.2 U-Net作为生成器 8.3.3 PatchGAN作为判别器 8.4 训练判别器和生成器 8.4.1 更新判别器 8.4.2 更新生成器 8.5 根据立面结构生成房屋图片 8.6 黑白图片自动上色 8.7 总结 第9章 ?Neural-Style与图像风格迁移 9.1 理解图像风格迁移算法 9.1.1 传统风格迁移 9.1.2 Neural-Style算法原理 9.2 加载图像 9.3 定义损失模块 9.3.1 内容损失模块 9.3.2 风格损失模块 9.4 导入预训练模型 9.5 使用L-BFGS进行梯度下降 9.6 训练自己的风格 9.7 总结 第10章 ?对抗机器学习和欺骗模型 10.1 模型的潜在威胁 10.2 快速梯度符号法 10.3 攻击一个图像识别模型 10.3.1 被攻击的模型 10.3.2 FGSM算法 10.4 开始攻击 10.4.1 攻击流程 10.4.2 攻击结果 10.5 总结 第11章 ?word2vec与词向量 11.1 词嵌入作用 11.2 词嵌入原理 11.2.1 CBOW实现 11.2.2 Skip-Gram实现 11.3 在PyTorch中实现词嵌入 11.3.1 数据准备 11.3.2 构造模型 11.3.3 训练模型 11.3.4 可视化 11.4 工具包word2vec结合中文词嵌入 11.4.1 word2vec使用 11.4.2 中文词嵌入 11.5 总结 第12章 ?命名实体识别 12.1 NER背景介绍 12.2 LSTM 12.2.1 LSTM原理 12.2.2 在PyTorch中使用LSTM 12.3 CRF 12.3.1 发射分数和转移分数 12.3.2 损失函数 12.3.3 预测 12.4 构建模型 12.4.1 模型结构 12.4.2 模型代码 12.5 开始训练 12.6 总结 第13章 ?基于AG_NEWS的文本分类 13.1 数据预处理 13.1.1 原始数据迭代器 13.1.2 数据处理 13.2 准备模型 13.2.1 初始化一个实例 13.2.2 定义函数训练和评估模型 13.3 训练模型 13.4 评估和测试模型 13.4.1 评估模型 13.4.2 随机新闻测试 13.5 总结 第14章 ?基于 BERT 的文本分类 14.1 transformers数据处理 14.1.1 加载预训练的序列化 序言 写作背景 2018 年,当大部分人还在用 TensorFlow 框架时 ,我们开始尝试使用 PyTorch,并发现PyTorch 更加 简洁易用。在使用的过程中,没有找到太多的中文资料 ,于是比较早地翻译了官方文档并分享在 PyTorch123 网站上。这份文档至今仍是很多初学者使用的入门文档 ,在开源社区 GitHub 上是比较热门的官方文档翻译之 一。 现在,有越来越多的研究人员开始使用 PyTorch 框架,所以,一本方便初学者快速入门的书就非常有必 要了。因此,笔者创作了本书,希望能对读者有所帮助 和提高。 主要内容 在编写本书时,我们结合读研期间的一些科研经历 和毕业之后的一些工作经验,做了以下工作:首先,选 取了经典的框架,方便读者了解基础概念;其次,选择 了计算机视觉和自然语言处理的热门任务,方便读者了 解这些任务的模型及代码的实现;最后,为了拓展学习 ,加入了比较热门的生成对抗网络和强化学习的内容。 由于作者能力有限,书中如有不当之处,还请各位读者 不吝赐教。 开发环境 为了方便读者的学习和使用,书中的代码运行环境 都进行了说明,主要为 Python 3.6、 PyTorch 1.4 和 torchvision 0.5.0。建议读者采用 Docker 来部 署运行环境,比较方便快捷。 本书阅读对象 (1)人工智能方向的研究生; (2)对深度学习感兴趣的学生; (3)想要学习深度学习框架的其他 IT 从业者。 致谢 感谢伍颖妍参与翻译了官方文档,感谢练其炎和关 雨呈参与本书部分章节的撰写工作。 导语 精选经典项目入门 提炼前沿技术提升 21个项目逐层递进 基于PyTorch轻松玩转深度学习 |