当前位置: 首页 > news >正文

在目标检测数据集上微调Florence-2

        Florence-2是由微软开源的轻量级视觉-语言模型,采用MIT许可。该模型在任务如图像描述、目标检测、定位和分割中展示了强大的零样本和微调能力。

        图1。图示展示了每个任务所表达的空间层次和语义细粒度水平。来源:Florence-2:推进多种视觉任务的统一表示。

        该模型将图像和任务提示作为输入,并以文本格式生成所需结果。它使用DaViT视觉编码器将图像转换为视觉标记嵌入,然后将这些嵌入与BERT生成的文本嵌入连接在一起,并通过基于Transformer的多模态编码器-解码器处理,以生成响应。

                图2。Florence-2架构概览。来源:Florence-2:推进多种视觉任务的统一表示。

1.设置

配置您的API密钥
        要微调Florence-2,您需要提供HuggingFace Token和Roboflow API密钥。按照以下步骤操作:

  1. 生成HuggingFace Token:

    • 打开您的HuggingFace设置页面https://huggingface.co/login?next=%2Fsettings%2Fprofile。
    • 点击“Access Tokens”,然后点击“New Token”以生成新的令牌。
  2. 获取Roboflow API密钥:

    • 前往您的Roboflow设置页面。Sign in to Roboflow
    • 点击“Copy”。这将您的私钥复制到剪贴板。
  3. 在Colab中存储密钥:

    • 打开Colab,进入左侧面板并点击“Secrets (🔑)”。
    • 将HuggingFace Access Token存储在名称为HF_TOKEN的密钥中。
    • 将Roboflow API Key存储在名称为ROBOFLOW_API_KEY的密钥中。

        通过这些步骤,您可以成功配置API密钥并开始微调Florence-2模型。确保替换YOUR_HF_TOKENYOUR_ROBOFLOW_API_KEYYOUR_PROJECT_NAMEYOUR_DATASET_VERSION为实际值。 

选择运行环境

        确保我们有GPU的访问权限。我们可以使用 nvidia-smi 命令来检查。如果有任何问题,请导航到 Edit -> Notebook settings -> Hardware accelerator,将其设置为 L4 GPU,然后点击 Save

检查GPU可用性

在Colab中,运行以下代码来检查是否有GPU可用:

python

!nvidia-smi

更改硬件加速器设置

如果没有检测到GPU,请按照以下步骤操作:

  1. 在Colab的菜单栏中,点击 Edit
  2. 选择 Notebook settings
  3. 在 Hardware accelerator 下拉菜单中,选择 GPU(特别是L4 GPU,如果有)。
  4. 点击 Save

确认更改后,再次运行 nvidia-smi 命令来确保GPU已经启用。

示例代码

# 检查GPU可用性
!nvidia-smi# 如果没有GPU,按照上述步骤更改硬件加速器为L4 GPU

 

这样您就可以确保您的Colab Notebook正在使用GPU,从而加速模型的微调过程。

2.下载数据和模型:

# @title Importsimport io
import os
import re
import json
import torch
import html
import base64
import itertoolsimport numpy as np
import supervision as svfrom google.colab import userdata
from IPython.core.display import display, HTML
from torch.utils.data import Dataset, DataLoader
from transformers import (AdamW,AutoModelForCausalLM,AutoProcessor,get_scheduler
)
from tqdm import tqdm
from typing import List, Dict, Any, Tuple, Generator
from peft import LoraConfig, get_peft_model
from PIL import Image
from roboflow import Roboflow

加载模型和处理器

        您需要使用 AutoModelForCausalLM 和 AutoProcessor 类从 transformers 库中加载模型和处理器。请注意,由于这个模型不是标准的 transformers 模型,因此您需要将 trust_remote_code 设置为 True

3.运行预训练的 Florence-2 模型

a.目标检测推理示例

# @title Example object detection inferenceimage = Image.open(EXAMPLE_IMAGE_PATH)
task = "<OD>"
text = "<OD>"inputs = processor(text=text, images=image, return_tensors="pt").to(DEVICE)
generated_ids = model.generate(input_ids=inputs["input_ids"],pixel_values=inputs["pixel_values"],max_new_tokens=1024,num_beams=3
)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=False)[0]
response = pro
http://www.lryc.cn/news/396552.html

相关文章:

  • AI提示词:AI辅导「数学作业」
  • odoo文档的安装
  • 02STM32软件安装新建工程
  • 社区6月月报 | Apache DolphinScheduler重要修复和优化记录
  • Docker 使用基础(2)—镜像
  • Docker学习笔记(三)Dockerfile
  • 学懂C#编程:C# 索引器(Indexer)的概念及用法
  • 汇川CodeSysPLC教程03-2-14 与HMI通信
  • centos部署jar包
  • CSS相对定位和绝对定位的区别
  • SpringCloud之nacos共享配置文件实现多数据源灵活切换
  • 原生小程序生成二维码方法之一
  • Kubernetes k8s Pod容器 探针 健康探测
  • Conformal low power-2.电源感知等效性检查
  • 【密码学】从有限状态自动机到密钥流生成器
  • 3.相机标定原理及代码实现(opencv)
  • Centos7 安装Docker步骤及报错信息(不敢说最全,但是很全)
  • 【C语言】符号优先级详解
  • 天翼云高级运维工程师202407回忆题库 最新出炉
  • 在Python中什么是上下文管理器以及如何使用with语句来管理资源
  • (四)、python程序--贪吃蛇游戏
  • 什么是DNS欺骗
  • C++实现对结构体信息排序
  • [CTF]-PWN:House of Cat堆题型综合解析
  • 18.按键消抖模块设计(使用状态机,独热码编码)
  • 【Hec-HMS】第一期:模型简介及软件安装
  • 逻辑回归不是回归吗?那为什么叫回归?
  • Activity对象的部分常见成员变量
  • 量化交易策略:赌徒在股市会运用凯利公式(附python代码)
  • 信息系统项目管理师【一】英文选择题词汇大全(1)