使用3080ti配置安装blip2

news2024/10/12 14:12:09

使用3080ti运行blip2的案例

  • 本机环境(==大家主要看GPU,ubuntu版本和cuda版本即可==):
  • 安装流程
  • 我最后安装的所有包的信息(python 3.9 )以供参考(environment.yml):

本机环境(大家主要看GPU,ubuntu版本和cuda版本即可):

(注意!我在运行blip2demo的时候显存用了80G以上,所以虽然这张卡能配好,但为了显存需要多卡运行!)

配置参考blip2的官方github网址。

PyTorch : 2.1.0 
ubuntu : 22.04
Python : 3.10
Cuda : 12.1
RTX : 3080 Ti(12GB) 
CPU : 12 vCPU Intel(R) Xeon(R) Silver 4214R CPU @ 2.40GHz
内存 : 90GB

安装流程

在该环境中运行如下代码开始安装:

我发现当我使用python3.8(cuda11.3,cuda11.1)的时候运行不起来,所以这里换成了cuda12.1python3.9

conda create -n blip2 python=3.9
conda init bash && source /root/.bashrc
conda activate blip2

之后开始安装lavis

pip install salesforce-lavis

之后我发现,环境还缺少了相关的opencv-python包,所以又运行:

pip install opencv-python

好像网上也有帖子说要本地安装salesforce-lavis,但是我不用本地安装就能运行了,大家也可以参考一下他们的安装方法

接下来就可以运行如下的代码进行测试实验了

import torch
from PIL import Image
import requests
from lavis.models import load_model_and_preprocess

# setup device to use
device = torch.device("cuda") if torch.cuda.is_available() else "cpu"
# load sample image


img_url = 'https://storage.googleapis.com/sfr-vision-language-research/LAVIS/assets/merlion.png' 
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')   
raw_image.show() #使用PIL来展示图片,原来的display函数应该是colab里的
#display(raw_image.resize((596, 437)))


model, vis_processors, _ = load_model_and_preprocess(
    name="blip2_t5", model_type="pretrain_flant5xxl", is_eval=True, device=device
)

#也可以用其他的模型
# Other available models:
# 
# model, vis_processors, _ = load_model_and_preprocess(
#     name="blip2_opt", model_type="pretrain_opt2.7b", is_eval=True, device=device
# )
# model, vis_processors, _ = load_model_and_preprocess(
#     name="blip2_opt", model_type="pretrain_opt6.7b", is_eval=True, device=device
# )
# model, vis_processors, _ = load_model_and_preprocess(
#     name="blip2_opt", model_type="caption_coco_opt2.7b", is_eval=True, device=device
# )
# model, vis_processors, _ = load_model_and_preprocess(
#     name="blip2_opt", model_type="caption_coco_opt6.7b", is_eval=True, device=device
# )
#
# model, vis_processors, _ = load_model_and_preprocess(
#     name="blip2_t5", model_type="pretrain_flant5xl", is_eval=True, device=device
# )
#
# model, vis_processors, _ = load_model_and_preprocess(
#     name="blip2_t5", model_type="caption_coco_flant5xl", is_eval=True, device=device
# )


vis_processors.keys()

但是运行这个代码,会自动下载blip2t5文件,然后我们直接连接huggingface网站又有一些问题,下载速度非常慢,下载不下来。

因为下载太慢了,我们可以在Salesforce/blip2-flan-t5-xxl · Hugging Face Hugging Face上找到相关的文件并下载。

下载方法:本地下载huggingface模型并在服务器上使用流程

如果不做任何改动,本来默认的下载位置如下(可以从huggingface上手动下载我们需要的模型,之后上传到这个地址下):
**加粗样式**
但是有时候这个默认路径是在系统盘里,上传到这个系统盘里,系统盘内存容量会不够。所以我们继续探索,找一下如何放到别的盘里。

Huggingface 默认下载位置更改
添加一句export HF_HOME="/root/autodl-tmp/huggingface"
source ~/.bashrc 使配置生效。

因为觉得有点麻烦,我直接把环境变量在下面的代码里改了
我在目录autodl-tmp下创建两个目录:
/huggingface文件夹
/torch-model文件夹

import torch
from PIL import Image
import requests
from lavis.models import load_model_and_preprocess
 
# setup device to use
device = torch.device("cuda") if torch.cuda.is_available() else "cpu"
# load sample image
 
img_url = 'https://storage.googleapis.com/sfr-vision-language-research/LAVIS/assets/merlion.png' 
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')   
raw_image.show() #使用PIL来展示图片,原来的display函数应该是colab里的
#display(raw_image.resize((596, 437)))
 
 
import os
os.environ['TORCH_HOME']=r"/root/autodl-tmp/torch-model"  #更改pytorch断点的默认保存目录
os.environ['TRANSFORMERS_CACHE'] = r'/root/autodl-tmp/huggingface'    #更改huggingface 的默认保存目录
   
model, vis_processors, _ = load_model_and_preprocess(
    name="blip2_t5", model_type="pretrain_flant5xxl", is_eval=True, device=device
)
 
vis_processors.keys()
 
# 引入环境变量之后,成功解决这个问题。

我最后安装的所有包的信息(python 3.9 )以供参考(environment.yml):

我的environment.yml文件内容

# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: linux-64
_libgcc_mutex=0.1=main
_openmp_mutex=5.1=1_gnu
altair=5.4.1=pypi_0
annotated-types=0.7.0=pypi_0
antlr4-python3-runtime=4.9.3=pypi_0
asttokens=2.4.1=pypi_0
attrs=24.2.0=pypi_0
bleach=6.1.0=pypi_0
blinker=1.8.2=pypi_0
blis=1.0.1=pypi_0
braceexpand=0.1.7=pypi_0
ca-certificates=2024.9.24=h06a4308_0
cachetools=5.5.0=pypi_0
catalogue=2.0.10=pypi_0
certifi=2024.8.30=pypi_0
cfgv=3.4.0=pypi_0
charset-normalizer=3.4.0=pypi_0
click=8.1.7=pypi_0
cloudpathlib=0.19.0=pypi_0
confection=0.1.5=pypi_0
contexttimer=0.3.3=pypi_0
contourpy=1.3.0=pypi_0
cycler=0.12.1=pypi_0
cymem=2.0.8=pypi_0
decorator=5.1.1=pypi_0
decord=0.6.0=pypi_0
distlib=0.3.9=pypi_0
einops=0.8.0=pypi_0
exceptiongroup=1.2.2=pypi_0
executing=2.1.0=pypi_0
fairscale=0.4.4=pypi_0
filelock=3.16.1=pypi_0
fonttools=4.54.1=pypi_0
fsspec=2024.9.0=pypi_0
ftfy=6.3.0=pypi_0
gitdb=4.0.11=pypi_0
gitpython=3.1.43=pypi_0
huggingface-hub=0.25.2=pypi_0
identify=2.6.1=pypi_0
idna=3.10=pypi_0
imageio=2.35.1=pypi_0
importlib-resources=6.4.5=pypi_0
iopath=0.1.10=pypi_0
ipython=8.18.1=pypi_0
jedi=0.19.1=pypi_0
jinja2=3.1.4=pypi_0
jsonschema=4.23.0=pypi_0
jsonschema-specifications=2024.10.1=pypi_0
kaggle=1.6.17=pypi_0
kiwisolver=1.4.7=pypi_0
langcodes=3.4.1=pypi_0
language-data=1.2.0=pypi_0
lazy-loader=0.4=pypi_0
ld_impl_linux-64=2.40=h12ee557_0
libffi=3.4.4=h6a678d5_1
libgcc-ng=11.2.0=h1234567_1
libgomp=11.2.0=h1234567_1
libstdcxx-ng=11.2.0=h1234567_1
marisa-trie=1.2.0=pypi_0
markdown-it-py=3.0.0=pypi_0
markupsafe=3.0.1=pypi_0
matplotlib=3.9.2=pypi_0
matplotlib-inline=0.1.7=pypi_0
mdurl=0.1.2=pypi_0
mpmath=1.3.0=pypi_0
murmurhash=1.0.10=pypi_0
narwhals=1.9.2=pypi_0
ncurses=6.4=h6a678d5_0
networkx=3.2.1=pypi_0
nodeenv=1.9.1=pypi_0
numpy=2.0.2=pypi_0
nvidia-cublas-cu12=12.1.3.1=pypi_0
nvidia-cuda-cupti-cu12=12.1.105=pypi_0
nvidia-cuda-nvrtc-cu12=12.1.105=pypi_0
nvidia-cuda-runtime-cu12=12.1.105=pypi_0
nvidia-cudnn-cu12=9.1.0.70=pypi_0
nvidia-cufft-cu12=11.0.2.54=pypi_0
nvidia-curand-cu12=10.3.2.106=pypi_0
nvidia-cusolver-cu12=11.4.5.107=pypi_0
nvidia-cusparse-cu12=12.1.0.106=pypi_0
nvidia-nccl-cu12=2.20.5=pypi_0
nvidia-nvjitlink-cu12=12.6.77=pypi_0
nvidia-nvtx-cu12=12.1.105=pypi_0
omegaconf=2.3.0=pypi_0
opencv-python=4.10.0.84=pypi_0
opencv-python-headless=4.5.5.64=pypi_0
opendatasets=0.1.22=pypi_0
openssl=3.0.15=h5eee18b_0
packaging=24.1=pypi_0
pandas=2.2.3=pypi_0
parso=0.8.4=pypi_0
pexpect=4.9.0=pypi_0
pillow=10.4.0=pypi_0
pip=24.2=py39h06a4308_0
platformdirs=4.3.6=pypi_0
plotly=5.24.1=pypi_0
portalocker=2.10.1=pypi_0
pre-commit=4.0.1=pypi_0
preshed=3.0.9=pypi_0
prompt-toolkit=3.0.48=pypi_0
protobuf=5.28.2=pypi_0
ptyprocess=0.7.0=pypi_0
pure-eval=0.2.3=pypi_0
pyarrow=17.0.0=pypi_0
pycocoevalcap=1.2=pypi_0
pycocotools=2.0.8=pypi_0
pydantic=2.9.2=pypi_0
pydantic-core=2.23.4=pypi_0
pydeck=0.9.1=pypi_0
pygments=2.18.0=pypi_0
pyparsing=3.1.4=pypi_0
python=3.9.20=he870216_1
python-dateutil=2.9.0.post0=pypi_0
python-magic=0.4.27=pypi_0
python-slugify=8.0.4=pypi_0
pytz=2024.2=pypi_0
pyyaml=6.0.2=pypi_0
readline=8.2=h5eee18b_0
referencing=0.35.1=pypi_0
regex=2024.9.11=pypi_0
requests=2.32.3=pypi_0
rich=13.9.2=pypi_0
rpds-py=0.20.0=pypi_0
salesforce-lavis=1.0.2=pypi_0
scikit-image=0.24.0=pypi_0
scipy=1.13.1=pypi_0
sentencepiece=0.2.0=pypi_0
setuptools=75.1.0=py39h06a4308_0
shellingham=1.5.4=pypi_0
six=1.16.0=pypi_0
smart-open=7.0.5=pypi_0
smmap=5.0.1=pypi_0
spacy=3.8.2=pypi_0
spacy-legacy=3.0.12=pypi_0
spacy-loggers=1.0.5=pypi_0
sqlite=3.45.3=h5eee18b_0
srsly=2.4.8=pypi_0
stack-data=0.6.3=pypi_0
streamlit=1.39.0=pypi_0
sympy=1.13.3=pypi_0
tenacity=9.0.0=pypi_0
text-unidecode=1.3=pypi_0
thinc=8.3.2=pypi_0
tifffile=2024.8.30=pypi_0
timm=0.4.12=pypi_0
tk=8.6.14=h39e8969_0
tokenizers=0.13.3=pypi_0
toml=0.10.2=pypi_0
torch=2.4.1=pypi_0
torchvision=0.19.1=pypi_0
tornado=6.4.1=pypi_0
tqdm=4.66.5=pypi_0
traitlets=5.14.3=pypi_0
transformers=4.26.1=pypi_0
triton=3.0.0=pypi_0
typer=0.12.5=pypi_0
typing-extensions=4.12.2=pypi_0
tzdata=2024.2=pypi_0
urllib3=2.2.3=pypi_0
virtualenv=20.26.6=pypi_0
wasabi=1.1.3=pypi_0
watchdog=5.0.3=pypi_0
wcwidth=0.2.13=pypi_0
weasel=0.4.1=pypi_0
webdataset=0.2.100=pypi_0
webencodings=0.5.1=pypi_0
wheel=0.44.0=py39h06a4308_0
wrapt=1.16.0=pypi_0
xz=5.4.6=h5eee18b_1
zipp=3.20.2=pypi_0
zlib=1.2.13=h5eee18b_1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git:LF will be replaced by CRLF、pytest PermissionError以及Git应用中的一些问题解决及一些使用技巧

一、Git:LF will be replaced by CRLF和pytest: --cov NTERNALERROR PermissionError 1. git warning: LF will be replaced by CRLF in ***file 偶然git add在进行代码提交的时候碰到警告warning: LF will be replaced by CRLF in ***file&#xff0c;原因是编辑的代码内容中…

java抽象类和接口-cnblog

java抽象类和接口 1 抽象类 在解决实际问题时,一般将父类作为抽象类&#xff0c;子类继承父类&#xff0c;并且实例化对象 在一个类中&#xff0c;只要有有一个方法是抽象的&#xff0c;类就是抽象的 抽象类被继承后需要实现所有的抽象方法&#xff0c;抽象类的关键词是abst…

entity,pojo,vo,dto 详解

在Java项目中&#xff0c;包名通常用于组织代码&#xff0c;使其更加清晰和易于维护。entity、pojo、vo和dto是常见的包名&#xff0c;它们各自有不同的含义和用途。下面将详细解释这些包名的含义&#xff0c;并提供一个示例&#xff0c;帮助你更好地理解它们在项目中的应用。 …

第二届 龙信杯 电子数据取证竞赛部分Writeup

大佬文章&#xff1a; 龙信杯复现&#xff08;23、24&#xff09; | BthclsBlog 手机部分 资料&#xff1a;2024年第二届龙信杯 WP_2024龙信杯wp-CSDN博客 1.分析手机检材&#xff0c;请问此手机共通过adb连接过几个设备&#xff1f;[标准格式&#xff1a;3] 2 /data/a…

基于Java SpringBoot和Vue校园新闻论坛管理系统设计

摘要 本系统采用Java Spring Boot作为后端框架&#xff0c;前端使用Vue.js构建用户界面&#xff0c;旨在为校园新闻论坛提供一个高效、易用且功能全面的管理平台。通过整合SpringBoot的快速开发优势与Vue的响应式设计&#xff0c;实现了一个包含用户注册登录、新闻发布审核、评…

Rust编程的泛型

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust编程与项目实战_夏天又到了的博客-CSDN博客 7.6.1 什么是泛型编程 C/C、Rust都是强类型语言&#xff0c;在对数据进行处理时&a…

详解前端开发都需要掌握的十个 JavaScript 基本数组函数

假设你正在开发一个复杂的 Web 项目。你的数据来自许多 API&#xff0c;你的工作是高效地处理、过滤和分析这些数据。你的时间很紧张&#xff0c;所以每一行代码都很重要。 这时学习高级 JavaScript 数组方法就会对你有所帮助。 这些函数不仅可以减少代码量&#xff0c;还可以…

C语言—双链表

一、双向链表的结构 注意&#xff1a;这⾥的“带头”跟前⾯我们说的“头节点”是两个概念&#xff0c;实际前⾯在单链表阶段称呼不严谨&#xff0c;带头链表⾥的头节点&#xff0c;实际为“哨兵位”&#xff0c;哨兵位节点不存储任何有效元素&#xff0c;只是站在这⾥“放哨的”…

desmos和webgl绘制线条

目录 desmos绘制 webgl绘制 将线段坐标生成三角化坐标 处理斜接线段 处理圆角 尖角 先在desmos上面完成线条lineJoin绘制的,再将代码和公式转到js用webgl绘制. desmos绘制 示例 desmos计角斜接角时&#xff0c;需要用到的一些函数。在desmos定义成公共函数&#xff0c…

[含文档+PPT+源码等]精品基于springboot实现的原生Andriod心理健康辅导平台

基于Spring Boot实现的原生Android心理健康辅导平台&#xff0c;其背景可以从以下几个方面进行详细阐述&#xff1a; 一、技术背景 Spring Boot框架&#xff1a;Spring Boot是Spring框架的一个子集&#xff0c;它通过自动配置、简化依赖管理、内嵌容器等特性&#xff0c;极大…

登录前端笔记(一):pinia管理用户数据

一、把pinia加入到项目文件里 ①、npm install pinia ②mian.ts //①导入createPinia import { createPinia } from pinia //②执行方法得到实例 const pinia createPinia() //③把pinia实例加入到APP应用里 app.use(pinia)二、官网简单实例&#xff08;定义store【state与ac…

Stylized Far East 古代国风建筑城镇宫殿场景模型

古代国风建筑城镇宫殿场景模型。内容: -演示场景(截图) - 种类繁多的建筑,如宫殿、商店、神社、房屋、餐馆、宝塔、寺庙等 -带有塔楼、门楼的模块化城堡墙 -树木、岩石、悬崖和其他自然资产 -传统装饰,如纸灯笼、绘画、瓷器等 - 城镇道具,如手推车、栅栏、板条箱、市场、…

Redis-缓存一致性

缓存双写一致性 更新策略探讨 面试题 缓存设计要求 缓存分类&#xff1a; 只读缓存&#xff1a;&#xff08;脚本批量写入&#xff0c;canal 等&#xff09;读写缓存 同步直写&#xff1a;vip数据等即时数据异步缓写&#xff1a;允许延时&#xff08;仓库&#xff0c;物流&a…

el-carousel-item自动重复渲染,使用nanoid让重复的元素包含不同的id

<template><div class"page-container"><div class"m-title">轮播图</div><el-carousel height"400px" :autoplay"true"><el-carousel-item v-for"(item, index) in carouselList" :key&…

AOT漫谈专题(第二篇): 如何对C# AOT轻量级APM监控

一&#xff1a;背景 1. 讲故事 上一篇我们聊到了如何调试.NET Native AOT 程序&#xff0c;这是研究一个未知领域知识的入口&#xff0c;这篇我们再来看下如何对 Native AOT 程序进行轻量级的APM监控&#xff0c;当然这里的轻量级更多的是对 AOT 中的coreclr内容的挖掘。 二…

面试官最喜欢问的28道ZooKeeper面试题

前言 ZooKeeper 是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域名服务、分布式同步、组服务等。 ZooKeeper 的目标就是封装好复杂易出错的关键服务&#xff0c;…

再也不怕面试官问我几百亿ip相关的问题了

首先要明确这一类的问题都是海量那个数据类型的问题&#xff0c;对于海量数据我们一般采用分而治之的思路去解决&#xff0c;考官考察的就是你有没有处理海量数据的经验。总结几个常见的海量数据相关的面试&#xff0c;供参考。 有一个存放10GB的ip地址文件&#xff0c;每行一…

2024年【安全生产监管人员】免费试题及安全生产监管人员模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年安全生产监管人员免费试题为正在备考安全生产监管人员操作证的学员准备的理论考试专题&#xff0c;每个月更新的安全生产监管人员模拟试题祝您顺利通过安全生产监管人员考试。 1、【单选题】()以上地方人民政府…

基于SSM的民宿预订系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 一、毕业设计&#xff08;论文&#xff09;选题的目的和意义 由于现代人经济水平的不断提高&#xff0c;出门旅游已经成为人们放松和休息的一种生活方式。而出门在外&#xff0c;住宿也是首要问题&#xff0c;相比于传统的酒店…

五子棋项目自动化测试

目录 一、五子棋项目介绍 二、编写Web测试用例 三、自动化测试脚本开发 1、引入依赖 2、设计框架 3、Utils 4、LoginPage 5、RegisterPage 6、MatchPage 7、RunTest类 8、运行程序 一、五子棋项目介绍 五子棋项目是基于 WebSocket 实现的多人在线对战系统&#xff0…