内容推荐 PyTorch神经网络实战:移动端图像处理主要介绍人工智能研究领域中神经网络的PyTorch架构,对其在多个领域的应用进行系统性的归纳和梳理。书中的案例有风景图分类、人像前景背景分割、低光照图像增法、动漫头像生成、画风迁移、风格转换等,对每项视觉任务的研究背景、应用价值、算法原理、代码实现和移动端部署流程进行了详细描述,并提供相应的源码,适合读者从0到1构建移动端智能应用。 PyTorch神经网络实战:移动端图像处理适合对人工智能实际应用感兴趣的本科生、研究生、深度学习算法工程师、计算机视觉从业人员和人工智能爱好者阅读,书中介绍的各项视觉任务均含有相应的安卓平台部署案例,不仅对学生参加比赛、课程设计具有参考意义,对相关从业人员的软件架构和研发也具有启发价值。 作者简介 丛晓峰,东南大学博士研究生。在2020年度高通(中国)和CSDN等联合举办的AI创新大赛中获得终端侧人工智能创新奖(金奖)。在知乎平台长期撰写人工智能领域的文.章,浏览量超过300万,地址为https://ww-w.zhihu.com/people/liu-de-hua-79-91。 目录 前言 第1章 人工智能与深度学习 1.1 人工智能简介 1.1.1 人工智能的概念 1.1.2 人工智能的历史 1.1.3 人工智能与深度学习的关系 1.1.4 深度学习的应用 1.2 深度学习理论基础 1.2.1 全连接层 1.2.2 卷积层 1.2.3 池化层 1.2.4 激活层 1.2.5 批归一化层 1.2.6 随机失活 1.2.7 损失函数 1.2.8 反向传播 1.3 深度学习实践细节 1.3.1 硬件选择 1.3.2 超参数设定 1.3.3 网络参数初始化 1.4 本章小结 第2章 PyTorch指南 2.1 安装与测试 2.1.1 安装PyTorch和torchvision 2.1.2 显卡测试 2.1.3 CPU和GPU切换 2.2 核心模块 2.3 模型构建流程图 2.4 张量Tensor 2.4.1 数值类型 2.4.2 创建方法 2.4.3 类型转换 2.4.4 维度分析 2.4.5 常用操作 2.5 数据读取与预处理 2.5.1 图像读取与存储 2.5.2 调用PyTorch官方数据集 2.5.3 ImageFolder 2.5.4 图像处理torchvision.transforms 2.5.5 数据读取类Dataset 2.5.6 DataLoader的创建和遍历 2.5.7 数据增强 2.6 nn模块与网络构建 2.6.1 卷积模块的使用 2.6.2 批归一化层 2.6.3 池化层 2.6.4 全连接层 2.6.5 常用激活函数 2.6.6 边缘填充 2.6.7 Dropout层 2.6.8 损失函数层 2.6.9 模块组合Sequential 2.6.10 网络构建实例 2.7 train与eval模式 2.8 优化器选择与绑定 2.9 自动求导机制与计算图 2.9.1 requires_grad 2.9.2 自动求导backward 2.9.3 叶子节点is_leaf 2.9.4 梯度函数grad_fn 2.9.5 计算图分离detach 2.9.6 图保持retain_graph 2.9.7 关闭梯度计算no_grad 2.10 模型保存与加载 2.10.1 模型文件的保存 2.10.2 模型文件的加载 2.10.3 联合保存与加载 2.10.4 保存与加载多个网络模型 2.11 模型设计和实现的完整流程 2.11.1 参数定义 2.11.2 准备数据、定义存储结果的容器 2.11.3 定义自编码网络 2.11.4 定义优化器与损失函数 2.11.5 训练模型 2.11.6 效果分析 2.12 网络结构可视化 2.13 拓展阅读 2.13.1 学习率调整策略 2.13.2 获取网络的命名参数 2.13.3 参数初始化 2.14 本章小结 第3章 Android应用构建 3.1 Android Studio安装与项目构建 3.1.1 Android Studio的下载和安装 3.1.2 创建Android项目 3.2 Manifest文件 3.3 界面布局 3.4 项目主活动与App启动 3.5 资源文件 3.5.1 颜色定义文件 3.5.2 字符串定义文件 3.5.3 形状定义文件 3.5.4 图像文件 3.6 核心控件使用 3.6.1 展示文字 3.6.2 展示图像 3.6.3 按钮和监听机制 3.7 相机、相册和图像保存 3.8 生成APK 3.8.1 自定义APK图标与名称 3.8.2 创建发布版APK 3.9 Bitmap格式 3.10 部署库下载 3.11 移动端神经网络实例 3.11.1 定义神经网络 3.11.2 Python端导出pt文件 3.11.3 将pt文件移入Android开发环境 3.11.4 在Java代码中加载神经网络模型 3.11.5 读取图像并进行缩放 3.11.6 构建输入张量 3.11.7 进行前向推理 3.11.8 处理输出结果 3.11.9 界面设计 3.11.10 完整代码与界面效果 3.12 本章小结 第4章 图像分类 4.1 图像分类概述 4.2 MobileNet介绍 4.3 深度可分离卷积 4.4 MobileNet V1 4.4.1 网络结构 4.4.2 网络搭建 4.5 MobileNet V2 4.5.1 网络结构 4.5.2 网络搭建 4.6 数据处理 4.6.1 数据介绍 4.6.2 Kaggle API介绍 4.6.3 数据处理 4.7 模型训练 4.8 图像分类App 4.8.1 分类功能界面设计 4.8.2 分类推理与解析 4.9 本章小结 第5章 图像分割 5.1 前景背景与人像分割 5.2 图像分割网络 5.2.1 FCN 5.2.2 UNet 5.2.3 分割损失函数 5.3 分割数据集构建与读取 5.3.1 标注工具介绍 5.3.2 分割数据集下载 5.3.3 成对图像读取与数据增强 5.4 分割网络的训练与验证 5.4.1 项目构建与超参数设置 5.4.2 分割网络训练 5.4.3 分割损失函数收敛性分析 5.4.4 人像分割测试 5.5 人像分割App 5.5.1 分割功能界面设计 5.5.2 获取掩码与前景图像应用 5.6 本章小结 第6章 低光照图像质量增强 6.1 伽马变换与低光照图像 6.2 场景分析与像素直方图 6.3 增强算法LLCNN 6.3.1 残差暗光增强网络 6.3.2 增强网络实现 6.3.3 增强损 |