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

BLIP2部署教程

简单记录一下BLIP2部署的流程
主要遇到的问题还是有墙导致模型权重无法下载

环境安装

本文采用Lavis进行BLIP2的部署

1.pip 安装lavis,这里记得换一下清华源,下载会快一点

pip install salesforce-lavis

通过下方代码判断lavis库是否安装成功

from lavis.models import model_zoo
print(model_zoo)

2.替换安装的库中权重文件路径
Image Captioning任务为例

  • 修改lavis/configs/models/blip_caption_base_coco.yaml
    该文件在python lavis库中,如果是通过git安装的,则直接更改对应git 项目文件

    model:arch: blip_captionload_finetuned: Truepretrained: "https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_base_capfilt_large.pth"finetuned: "https://storage.googleapis.com/sfr-vision-language-research/LAVIS/models/BLIP/blip_coco_caption_base.pth"# vit encodervit_type: "base"vit_grad_ckpt: Falsevit_ckpt_layer: 0image_size: 384
    

    pretrainedfinetuned 中的权重文件下载到本地,然后将其替换成权重的绝对路径

  • 运行报错 OSError: Can't load tokenizer for 'bert-base-uncased'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'bert-base-uncased' is the correct path to a dir

    直接命令行通过huggingface镜像运行脚本,从而下载对应bert模型权重
    HF_ENDPOINT=https://hf-mirror.com python 测试脚本.py

    总体思想就是缺少哪个模型权重文件就下载哪个,然后替换成对应绝对路径

    另附Image Captioning任务 测试脚本

    import torch
    from lavis.models import load_model_and_preprocess
    from PIL import Imagedevice = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    # loads BLIP caption base model, with finetuned checkpoints on MSCOCO captioning dataset.
    # this also loads the associated image processors
    model, vis_processors, _ = load_model_and_preprocess(name="blip_caption", model_type="base_coco", is_eval=True, device=device)
    # preprocess the image
    # vis_processors stores image transforms for "train" and "eval" (validation / testing / inference)
    raw_image = Image.open("./merlion.png").convert("RGB")image = vis_processors["eval"](raw_image).unsqueeze(0).to(device)
    # generate caption
    res=model.generate({"image": image})
    print(res)
    # ['a large fountain spewing water into the air']
    

http://www.mrgr.cn/news/58368.html

相关文章:

  • vue需要清除定时器和延时器吗
  • 擎创科技声明
  • “面试造火箭,工作拧螺丝”,程序员月薪多少?
  • leetcode动态规划(八)-不同的二叉搜索树
  • 基于大型语言模型的智能网页抓取
  • mac用户使用Windows的方法:虚拟机、远程桌面和迷你主机
  • Python突破浏览器TLS/JA3 指纹
  • BestMan:具有统一仿真硬件 API 的模块化移动机械手平台,用于具身 AI
  • 深入解析Java中的锁
  • 【漏洞复现】金和OA_jc6_ntko-upload任意文件上传漏洞.md
  • 制作视频费时费力?在这里只要简单几步就够了
  • 深入拆解TomcatJetty——Tomcat生命周期与多层容器
  • 【设备状态与人员动态的监测和呈现-会议签到的补充】
  • 智慧商城项目4-购物车功能
  • Django配置路由后,为什么输入http://127.0.0.1:8000/ 网址后报错了?
  • 【逆向基础】十七、PE文件格式(二)
  • 16 使用宏定义定义常量
  • OFFER攻略 08| 130+个offer背后:AIGC产品经理成长之路,零基础入门到精通,收藏这一篇就够了
  • 汇编教程 最终:文件管理与内存管理
  • Jvm中的堆和栈
  • Docker容器的基础镜像:构建现代应用程序的基石
  • 讲一讲AOP的原理,AOP在哪些场景下会失效?
  • openresty安装
  • Ubuntu 下安装 Nginx
  • NativeCrash 率从万分位降到十万分位,我做了这几件事...
  • 对比两个el-table,差异数据突显标记