【深度学习】嘿马深度学习笔记第1篇:深度学习,1.1 深度学习与机器学习的区别【附代码文档】

举报
程序员一诺python 发表于 2025/05/31 20:14:13 2025/05/31
【摘要】 要求 目标 1.1 深度学习与机器学习的区别 学习目标 1.1.1 区别 1.1.1.1 特征提取方面 1.1.2 算法代表 深度学习的应用场景 1.2 深度学习框架介绍 1.2.2 TensorFlow的特点 深度学习介绍 2.1 TF数据流图 2.1.1 案例:TensorFlow实现一个加法运算 2.2 图与TensorBoard 2.2.1 什么是图结构 2.2.2 图

教程总体简介:要求 目标 1.1 深度学习与机器学习的区别 学习目标 1.1.1 区别 1.1.1.1 特征提取方面 1.1.2 算法代表 深度学习的应用场景 1.2 深度学习框架介绍 1.2.2 TensorFlow的特点 深度学习介绍 2.1 TF数据流图 2.1.1 案例:TensorFlow实现一个加法运算 2.2 图与TensorBoard 2.2.1 什么是图结构 2.2.2 图相关操作 1 默认图 2 创建图 2.2.4 OP 2.2.4.2 指令名称 2.3 会话 卷积神经网络 2.5 CNN网络实战技巧 3.1 迁移学习案例 3.1.1 案例:基于VGG对五种图片类别识别的迁移学习 3.1.1.2 数据集以及迁移需求 3.1.1.3 思路和步骤 3.1.1.4 训练的时候读取本地图片以及类别 假定最后一层CNN的层输出为(None, 8, 8, 2048) 取每一个特征图的平均值作为输出,用以替代全连接层 100为类别 在__init__中添加 1.1 项目演示 1.2 开发环境搭建 3.2 目标检测任务描述 3.2.4 目标定位的简单实现思路 商品物体检测项目介绍 3.3 R-CNN 3.3.1 目标检测-Overfeat模型 3.3.7 问题? 3.3.8 SPPNet 3.5 Faster R-CNN 3.5.2 RPN原理 3.5.4 效果对比 YOLO与SSD 3.6 YOLO(You only look once) 3.6.1 YOLO 3.6.2 单元格(grid cell) 3.6.3 非最大抑制(NMS) 3.6.4 训练 3.7 SSD(Single Shot MultiBox Detector) 3.7.1 SSD 问题:SSD中的多个Detector & classifier有什么作用? 3.7.2 训练与测试流程 SSD网络接口实现 4.3 案例:SSD进行物体检测 4.3.1 案例效果 4.3.3 步骤分析以及代码 循环读取图片进行多个图片输出检测 预测 定义BBox工具 使用非最大抑制算法过滤 5.1 项目训练结构介绍 5.1.1 项目目录结构 商品检测数据集训练 5.2 标注数据读取与存储 5.2.1 案例:xml读取本地文件存储到pkl 5.2.1.1 解析结构 one_hot编码函数 5.3 训练 5.3.3 多GPU训练代码修改 5.4 本地预测测试 5.4.1 预测代码 5.6 Web与模型服务对接逻辑 5.5 模型导出 5.4.1 keras 模型进行TensorFlow导出 Docker部署环境使用介绍 5.7 TF Serving 与 Web开启服务 4.8.2 安装Tensorflow Serving 5.7.2 案例操作:commodity模型服务运行 TensorFlow Client对接模型服务 Web Server开启 模型导出与部署 2.4 张量 2.4.1 张量(Tensor) 2.4.1.1 张量的类型 2.4.4 张量的数学运算 2.5 变量OP 2.5.1 创建变量 2.5.2 使用tf.variable_scope()修改变量的命名空间 2.7 案例:实现线性回归 2.7.1 线性回归原理复习 2.7.3 增加其他功能 2 增加命名空间 3 模型的保存与加载 4 命令行参数使用 完整代码 1.2 神经网络基础 tf.keras介绍 神经网络与tf.keras 1.4 深层神经网络 3.1 卷积神经网络(CNN)原理 2.2案例:CIFAR100类别分类 2.2.2 API 使用 2.2.3 步骤分析以及代码实现(缩减版LeNet5) 2.2 梯度下降算法改进 2.4 经典分类网络结构 2.4.6 案例:使用pre_trained模型进行VGG预测

完整笔记资料代码:https://gitee.com/yinuo112/AI/tree/master/深度学习/嘿马深度学习笔记/note.md

感兴趣的小伙伴可以自取哦~


全套教程部分目录:


部分文件图片:

深度学习

要求

  • 熟练掌握机器学习基础,如分类、回归
  • 熟练掌握numpy,pandas,sklearn等框架使用

目标

  • 算法

  • 掌握神经网络的数学原理

  • 手动实现简单的神经网络结构

  • 应用

  • 熟练掌握TensorFlow框架使用

  • 掌握神经网络图像相关案例

1.1 深度学习与机器学习的区别

学习目标

  • 目标

  • 知道深度学习与机器学习的区别

  • 应用

1.1.1 区别

1.1.1.1 特征提取方面

  • 机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识
  • 深度学习通常由多个层组成,它们通常将更简单的模型组合在一起,通过将数据从一层传递到另一层来构建更复杂的模型。通过大量数据的训练自动得到模型,不需要人工设计特征提取环节

    深度学习算法试图从数据中学习高级功能,这是深度学习的一个非常独特的部分。因此,减少了为每个问题开发新特征提取器的任务。适合用在难提取特征的图像、语音、自然语言领域

1.1.1.2 数据量

机器学习需要的执行时间远少于深度学习,深度学习参数往往很庞大,需要通过大量数据的多次优化来训练参数。

第一、它们需要大量的训练数据集

第二、是训练深度神经网络需要大量的算力

可能要花费数天、甚至数周的时间,才能使用数百万张图像的数据集训练出一个深度网络。所以以后

  • 需要强大对的GPU服务器来进行计算
  • 全面管理的分布式训练与预测服务——比如[谷歌 TensorFlow 云机器学习平台]( CPU 和 GPU

1.1.2 算法代表

  • 机器学习

  • 朴素贝叶斯、决策树等

  • 深度学习

  • 神经网络

深度学习的应用场景

学习目标

  • 目标

  • 知道深度学习的主要应用场景

  • 应用

  • 图像识别

  • 物体识别

  • 场景识别
  • 车型识别
  • 人脸检测跟踪
  • 人脸关键点定位
  • 人脸身份认证

  • 自然语言处理技术

  • 机器翻译

  • 文本识别
  • 聊天对话

  • 语音技术

  • 语音识别

1.2 深度学习框架介绍

学习目标

  • 目标

  • 了解常见的深度学习框架

  • 了解TensorFlow框架

  • 应用

1.2.1 常见深度学习框架对比

tensorflow的github:

1.2.2 TensorFlow的特点

官网:[

  • 语言多样(Language Options)

  • TensorFlow使用C++实现的,然后用Python封装。谷歌号召社区通过SWIG开发更多的语言接口来支持TensorFlow

  • 使用分发策略进行分发训练

  • 对于大型 ML 训练任务,分发策略 API使在不更改模型定义的情况下,可以轻松地在不同的硬件配置上分发和训练模型。由于 TensorFlow 支持一系列硬件加速器,如 CPU、GPU 和 TPU

  • Tensorboard可视化

  • TensorBoard是TensorFlow的一组Web应用,用来监控TensorFlow运行过程

  • 在任何平台上的生产中进行强大的模型部署

一旦您训练并保存了模型,就可以直接在应用程序中执行它,或者使用部署库为其提供服务:

  • [TensorFlow 服务]( HTTP/REST 或 GRPC/协议缓冲区提供服务的 TensorFlow 库构建。
  • [TensorFlow Lite]( 针对移动和嵌入式设备的轻量级解决方案提供了在 Android、iOS 和嵌入式系统上部署模型的能力。
  • [tensorflow.js]( JavaScript 环境中部署模型,例如在 Web 浏览器或服务器端通过 Node.js 部署模型。TensorFlow.js 还支持在 JavaScript 中定义模型,并使用类似于 Kera 的 API 直接在 Web 浏览器中进行训练。

1.2.3 TensorFlow的安装

安装 TensorFlow在64 位系统上测试这些系统支持 TensorFlow:

  • Ubuntu 16.04 或更高版本
  • Windows 7 或更高版本
  • macOS 10.12.6 (Sierra) 或更高版本(不支持 GPU)

进入虚拟环境当中再安装。刚开始的环境比较简单,只要下载tensorflow即可

  • 环境包:

安装较慢,指定镜像源,请在带有numpy等库的虚拟环境中安装

  • ubuntu安装
1
pip install tensorflow==1.12 -i 
  • MacOS安装
1
pip install tensorflow==1.12 -i 

注:如果需要下载GPU版本的(TensorFlow只提供windows和linux版本的,没有Macos版本的)参考官网[

1、虚拟机下linux也是用不了GPU版本TensorFlow

2、本机单独的windows和本机单独的unbuntu可以使用GPU版本TensorFlow,需要安装相关驱动

1.2.4 Tenssorlfow使用技巧

  • 使用**[tf.keras](
  • tensorflow提供模型训练模型部署

深度学习介绍

2.1 TF数据流图

学习目标

  • 目标

  • 说明TensorFlow的数据流图结构

  • 应用

  • 内容预览

  • 2.1.1 案例:TensorFlow实现一个加法运算

    • 1 代码
    • 2 TensorFlow结构分析
  • 2.1.2 数据流图介绍

2.1.1 案例:TensorFlow实现一个加法运算

2.1.1.1 代码

1
def tensorflow_demo():
    """
    通过简单案例来了解tensorflow的基础结构
    :return: None
    """
    # 一、原生python实现加法运算
    a = 10
    b = 20
    c = a + b
    print("原生Python实现加法运算方法1:\n", c)
    def add(a, b):
        return a + b
    sum = add(a, b)
    print("原生python实现加法运算方法2:\n", sum)

    # 二、tensorflow实现加法运算
    a_t = tf.constant(10)
    b_t = tf.constant(20)
    # 不提倡直接运用这种符号运算符进行计算
    # 更常用tensorflow提供的函数进行计算
    # c_t = a_t + b_t
    c_t = tf.add(a_t, b_t)
    print("tensorflow实现加法运算:\n", c_t)
    # 如何让计算结果出现?
    # 开启会话
    with tf.Session() as sess:
        sum_t = sess.run(c_t)
        print("在sess当中的sum_t:\n", sum_t)

    return None

注意问题:警告指出你的CPU支持AVX运算加速了线性代数计算,即点积,矩阵乘法,卷积等。可以从源代码安装TensorFlow来编译,当然也可以选择关闭

1
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

2.1.1.2 TensorFlow结构分析

TensorFlow 程序通常被组织成一个构建图阶段和一个执行图阶段。

在构建阶段,数据与操作的执行步骤被描述成一个图。

在执行阶段,使用会话执行构建好的图中的操作。

  • 图和会话 :

  • 图:这是 TensorFlow 将计算表示为指令之间的依赖关系的一种表示法

  • 会话:TensorFlow 跨一个或多个本地或远程设备运行数据流图的机制

  • 张量:TensorFlow 中的基本数据对象

  • 节点:提供图当中执行的操作

2.1.2 数据流图介绍

![](https://fileserver.developer.huaweicloud.com/FileServer/getFile/communitytemp/20250531/community/383/461/571/0001696944383461571.20250531121400.99771582507759520520682866101438:20250531131400:2415:4461F96C333AE74F619FB86F5AB134C900A2C290998CBA4D527A41A28D22992D.gif)

TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源框架。

节点(Operation)在图中表示数学操作,线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

TensorFlow介绍

1
说明TensorFlow的数据流图结构
应用TensorFlow操作图
说明会话在TensorFlow程序中的作用
应用TensorFlow实现张量的创建形状类型修改操作
应用Variable实现变量op的创建
应用Tensorboard实现图结构以及张量值的显示
应用tf.train.saver实现TensorFlow的模型保存以及加载
应用tf.app.flags实现命令行参数添加和使用
应用TensorFlow实现线性回归

2.2 图与TensorBoard

学习目标

  • 目标

  • 说明图的基本使用

  • 应用tf.Graph创建图、tf.get_default_graph获取默认图
  • 知道开启TensorBoard过程
  • 知道图当中op的名字以及命名空间

  • 应用

  • 内容预览

  • 2.2.1 什么是图结构

  • 2.2.2 图相关操作

    • 1 默认图
    • 2 创建图
  • 2.2.3 TensorBoard:可视化学习

    • 1 数据序列化-events文件
    • 2 启动TensorBoard
  • 2.2.4 OP

    • 1 常见OP
    • 2 指令名称

2.2.1 什么是图结构

图包含了一组tf.Operation代表的计算单元对象和tf.Tensor代表的计算单元之间流动的数据。

2.2.2 图相关操作

1 默认图

通常TensorFlow会默认帮我们创建一张图。

查看默认图的两种方法:

  • 通过调用tf.get_default_graph()访问 ,要将操作添加到默认图形中,直接创建OP即可。
  • op、sess
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。