TensorFlow-similarity 学习笔记10

TensorFlow-similarity 学习笔记102021SC@SDUSC使用 Keras 和Determined的对象检测1TensorFlow-similarity 学习笔记10介绍RetinaNet 对象检测模型的简要概述设置Determined调整 RetinaNet 与Determined一起工作初始化构建模型加载数据中介绍目标检测是计算机视觉中的一项重要任务。使用深度学习进行对象检测可以产生高度准确的模型,但开发人员也可能遇到一些挑战。首先,深度学习模型的训练成本非常高——即使使用
摘要由CSDN通过智能技术生成

TensorFlow-similarity 学习笔记10

2021SC@SDUSC

介绍

目标检测是计算机视觉中的一项重要任务。使用深度学习进行对象检测可以产生高度准确的模型,但开发人员也可能遇到一些挑战。首先,深度学习模型的训练成本非常高——即使使用 GPU,现代对象检测模型也可能需要数小时的计算才能从头开始训练。管理这些 GPU 并在多个 GPU 上并行运行工作负载很快就会变得复杂。其次,对象检测模型通常具有许多超参数。虽然存在自动调整超参数的算法,但在实践中应用这些算法需要运行数百或数千个训练作业并比较所有这些模型的性能。说复杂!
确定使训练深度学习模型和调整超参数变得更加容易。它可以自动将作业调度到一组 GPU(本地或云端)上,并包括用于高效超参数调整的最先进算法。它提供了一个实时仪表板来跟踪和可视化结果,使您能够实时清楚地了解模型的表现——作为模型开发人员,您可以快速开始训练工作或 HP 搜索,和决心会照顾其余的。
确定还可以轻松地同时使用多个 GPU,这意味着您可以更快地训练单个模型(使用分布式训练)或在更短的时间内搜索大量超参数空间 - 无需修改代码或手动管理 GPU。确定让您专注于模型开发,因此您可以更快地将想法转化为生产中的工作模型。

要了解确定的其他功能,请查看文档

在本博客中,将首先在 AWS 上安装Determined,然后修改现成的 tf.keras 对象检测模型以与Determined一起工作。 接下来,将在单个 GPU 上训练模型,最后进行超参数搜索。
所使用的模型基于使用 RetinaNet 进行对象检测。

RetinaNet 对象检测模型的简要概述

RetinaNet 是一个两阶段检测器——它既定位又检测图像中存在的对象。 它使用特征金字塔网络来检测多个尺度的对象,并引入了一种新的损失,即焦点损失函数,以缓解极端前景-背景类不平衡的问题。 要深入了解模型,可以参考原始论文 Focal Loss for Dense Object Detection。

设置Determined

可以使用 GCP 或您选择的本地 Linux 实例。 master运行的实例至少要有200GB的磁盘空间; 每个代理实例应该有 50GB 的磁盘空间。 我将使用单个代理并将主实例和代理部署到同一个 AWS 实例。
要在单个 AWS 实例上安装确定,按照下列步骤操作:
每个步骤都附有与 Amazon Linux/RHEL/CentOS Linux 实例兼容的代码。
步骤 1:设置Linux 实例 — AWS、GCP 或本地。
第 2 步:确保 Linux 实例上安装了 Python3 和 Docker。

sudo yum install python3 docker

第三步:启动docker服务。

sudo service docker start

第 4 步:为 docker 套接字分配全局读、写和执行权限。

sudo chmod 777 /var/run/docker.sock

第五步:使用pip安装det-deploy,这个工具我们将用来安装确定系统的其余部分。

sudo pip3 install determined-deploy

步骤 6:使用 pip 安装确定的 CLI。 CLI 用于提交新的深度学习工作负载以供确定系统的其余部分执行。

sudo pip3 install determined-cli

第七步:设置DET_MASTER环境变量; 这会告诉 CLI 运行确定主服务器的 IP 地址或主机名。 在这种情况下,我们将 master 部署到安装了 det-deploy 的同一个实例,因此我们可以使用“localhost”。

export DET_MASTER=<master-hostip>

第 8 步:调出确定的主和代理。
如果您的系统有 GPU,请确保已安装 NVIDIA 驱动程序以及 NVIDIA 容器工具包。
如果您使用带有 GPU 的 AWS 实例,请运行以下命令:

det-deploy local cluster-up

如果使用的是没有 GPU 的 AWS 实例,请运行以下命令:

det-deploy local cluster-up --no-gpu

现在在工作区中设置了一个确定的集群。
上述过程不是安装确定的唯一方法; 对于生产部署,在单个实例(不带 GPU)上运行主实例,并配置“确定”以在提交新的深度学习工作负载时自动配置称为“动态代理”的配备 GPU 的实例。

调整 RetinaNet 与Determined一起工作

将模型移植到Determined的涉及使模型与确定的 API 兼容。有关调整现有模型代码以使用确定的更多信息,请查看确定的 tf.keras 教程。
一旦我们的模型代码适应了确定的工作,我们将训练模型的单个实例并执行超参数搜索 - 无需更改我们的模型代码!
可以在此处下载模型源代码。
概述
将模型移植到确定的 API 通常很简单;如果我们有一个现有的训练脚本,大部分代码可以保持不变,我们只需要“重构”它以适应四个不同的步骤:
初始化你的模型
定义你的模型
加载训练数据集
加载验证数据集
首先必须初始化一个模型。此步骤涉及定义训练模型时可能需要的所有超参数。
接下来,定义模型的层,以及使用的优化器和损失。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值