• 使用 TensorFlow 构建计算机视觉模型


    什么是计算机视觉?

    计算机视觉 (CV) 是现代人工智能 (AI) 和机器学习 (ML) 系统的主要任务。它正在加速行业中的几乎每个领域,使组织能够彻底改变机器和业务系统的工作方式。

    在学术上,它是计算机科学的一个成熟领域,数十年的研究工作已经进入该领域以使其丰富。深度神经网络的使用最近彻底改变了该领域并赋予它新的生命。

    计算机视觉有多种应用领域,例如:

    • 自动驾驶
    • 医学影像分析与诊断
    • 检测制造缺陷
    • 监控录像的图像和视频分析
    • 安全系统的面部识别

    当然,与 CV 系统相关的挑战很多。例如,自动驾驶不仅仅使用物体检测,还包括物体分类、分割、运动检测等。

    最重要的是,这些系统有望在几分之一秒内处理 CV 信息并做出高概率决策。更高级别的监督控制系统必须做出决定,负责最终的驾驶任务。

    此外, 多个CV 系统/算法通常在任何受人尊敬的自动驾驶系统中发挥作用。在这些情况下,对并行处理的需求很高,这会导致底层计算机器承受很高的压力。

    如果同时使用多个神经网络,它们可能会共享公共系统存储并相互竞争公共资源池。

    就医学成像而言,计算机视觉系统的性能由了解图像背后的病理学的 经验丰富的放射科医师和临床专业人员来判断。此外,在大多数情况下,任务涉及识别患病率非常低的罕见疾病

    这使得训练数据稀疏和稀疏,即找不到足够的训练图像。因此,深度学习 (DL) 架构必须通过添加智能处理和架构复杂性来弥补这一点。

    为什么选择用于 CV 的 TensorFlow?

    TensorFlow 是来自 Google 的一种广泛使用且备受推崇的开源 Python 包,它使构建计算机视觉深度学习模型变得简单直接。来自其官方网站:

    它拥有一个全面、灵活的工具、库和社区资源生态系统,使研究人员能够推动 ML 的最新技术发展,而开发人员则可以轻松构建和部署 ML 支持的应用程序。”

    随着 TensorFlow 2.0 的发布和作为高级 API 的 Keras 库集成,可以轻松堆叠神经元层并构建和训练足够复杂的深度学习架构。

    轻松
    构建模型 使用 Keras 等直观的高级 API 轻松构建和训练 ML 模型,以实现即时模型迭代和轻松调试

    强大的 ML Production Anywhere
    无论您使用何种编程语言,都可以轻松地在云端、本地、设备上训练和部署模型。 

    强大的研究
    功能简单灵活的架构可将新想法从概念转化为代码。自信地发布最先进的模型

    现在,当然,TensorFlow 可用于为各种应用程序构建深度学习模型,包括,

    • 物体检测
    • 场景分割
    • 合成图像的生成对抗网络
    • 用于图像压缩的自动编码器
    • 推荐系统

    但是,在本文中,我们重点关注使用 TensorFlow 使用卷积神经网络 (CNN) 构建简单对象分类任务代码实践示例

    这涵盖了 TensorFlow 的所有基本组件,例如层、优化器、误差函数、训练选项、超参数调整等。

    对象分类任务的实践示例

    深度学习任务和模型训练广泛受益于游戏处理单元 (GPU) 等专用硬件。

    通用 CPU 在处理大量数据时会遇到困难,例如,对具有数万或数十万浮点数的 矩阵执行线性代数运算。

    在引擎盖下,深度神经网络主要由矩阵乘法和向量加法等操作组成。开发 GPU(主要迎合视频游戏行业)是为了使用数千个微型计算核心处理大规模并行计算。

    它们还具有大内存带宽,以处理神经网络训练数百个时期时这些计算所需的快速数据流(处理单元缓存到较慢的主内存并返回)。这使它们成为处理计算机视觉任务计算负载的理想商品硬件。

    使用和检查 GPU

    有多种途径可以将 GPU 用于深度学习任务。购买裸机服务器或工作站对于那些寻求最高可定制性的人来说可能是有益的。从 AWS 或 GCP 租用云上的 GPU 计算资源非常适合那些运行数据有限的短会话的人。或者使用免费(但有限)的资源,例如Google Colaboratory。数据集越大,模型越好,但在这个例子中,我们使用最后一个选项 Google Colab。

    我们首先测试是否有 GPU 用于训练,

    1. import tensorflow as tf
    2. device_name = tf.test.gpu_device_name()
    3. if device_name != '/device:GPU:0':
    4. raise SystemError('GPU device not found')
    5. print('Found GPU at: {}'.format(device_name))

    获取数据集

    我们使用以下代码直接将数据集下载到本地环境(Google Colab)中。如果您在本地机器上工作(并且已经保存了文件),则相应地修改代码。

    wget --no-check-certificate \ https: //存储谷歌 API com / laurencemoroney-博客应用点com /压缩 \

    -O / tmp /-或-压缩

    访问压缩文件内容

    以下 python 代码将使用 OS 库来使用操作系统库,使您可以访问文件系统和 zipfile 库,从而可以解压缩数据。

  • 相关阅读:
    Linux 进程线程
    用Python和TensorFlow实现图像分类:从零开始
    44、Flink之module模块介绍及使用示例和Flink SQL使用hive内置函数及自定义函数详细示例--网上有些说法好像是错误的
    字节跳动企业软件:用日活评判企业软件,跟95后打行业
    【C语言】数组下标为啥从0开始?下标越界访问一定报错吗?
    SSM之spring注解式缓存redis->redis整合,redis的注解式开发及应用场景,redis的击穿穿透雪崩
    力扣(LeetCode)176. 第二高的薪水(2022.06.25)
    Java基础错题集(一)
    [Unity3D]--更换天空盒子
    闲聊一下写技术博客的一些感想
  • 原文地址:https://blog.csdn.net/wouderw/article/details/128029039