使用3080ti配置安装blip2
使用3080ti运行blip2的案例
- 本机环境(==大家主要看GPU,ubuntu版本和cuda版本即可==):
- 安装流程
- 我最后安装的所有包的信息(python 3.9 )以供参考(environment.yml):
本机环境(大家主要看GPU,ubuntu版本和cuda版本即可):
(注意!我在运行blip2的demo的时候显存用了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.1和python3.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 imageimg_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 imageimg_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
相关文章:
使用3080ti配置安装blip2
使用3080ti运行blip2的案例 本机环境(大家主要看GPU,ubuntu版本和cuda版本即可):安装流程我最后安装的所有包的信息(python 3.9 )以供参考(environment.yml): 本机环境&a…...
vue3组件通信之defineEmits
一、defineEmits是什么? defineEmits 是vue3提供的方法,又称为自定义事件,不需要引入可以直接使用,用于子组件与父组件通信。 二、使用样例 1.父组件代码 代码如下(示例): <template>…...
rust gio-rs 挂载 samba 磁盘
linux 使用的 gio 管理工具 这个工具如下 这是 gio 的rust版本 https://crates.io/crates/gio 可以用 rust 语言实现下面所有操作 gio mout 挂载 samba 如下 //https://valadoc.org/gio-2.0/GLib.MountOperation.html pub async fn gio_mount(uri路径:&str, 用户名:Opti…...
幸存者游戏(类)
#include <iostream> #include <graphics.h> #include <stdio.h> #include <conio.h> #include <vector> #include <string> using namespace std; int idx_player_anim 0; const int player_anim_num 6;//这里要把动画帧数定位const i…...
SQL 中UPDATE 和 DELETE 语句的深入理解与应用
在 SQL 中,UPDATE和DELETE语句是用于操作表数据的重要工具,它们允许我们对已存在的数据进行修改和删除。 一、UPDATE 语句 (一)基本语法 UPDATE语句的基本语法如下: UPDATE table_name SET column1 value1, colum…...
在 Windows 上查找和结束占用特定端口占用程序,并杀死
在 Windows 上查找和结束占用特定端口(如 9003)的程序,你可以使用以下步骤: 步骤 1:找到占用端口的进程 ID (PID) 打开命令提示符(按 Win R,输入 cmd,然后按回车)。输…...
sql server尽量避免滥用影响性能的标量函数
相信很多新手学了 函数的用法就不可避免的想把学到的东西用起来,然而这个函数使用却有坑, 在实际用的时候我发现一个简单的计算封装 ,不用函数和用函数执行耗时差太多了。 能避免列上进行函数则尽量避免,这是在实际上遇到的坑 &am…...
python画图|二维动态柱状图输出
【1】引言 在前面的学习过程中,已经探索过二维柱状图和三维柱状图的绘制教程,包括且不限于的文章链接有: python画图|水平直方图绘制_绘制水平直方图-CSDN博客 python画图|3D bar进阶探索_ax.bar3d-CSDN博客 此外也学习了动态的直线输出和…...
CocosCreator 快速部署 TON 游戏:Web2 游戏如何使用 Ton支付
在本篇文章中,我们将继续探讨如何使用 Cocos Creator 开发 Telegram 游戏,重点介绍如何集成 TON 支付功能。通过这一教程,开发者将学会如何在游戏中接入 TON Connect,实现钱包连接、支付以及支付后的校验流程,最终为 W…...
生信初学者教程(二十八):单细胞数据标准化
文章目录 介绍加载R包导入数据消除测序深度影响评估细胞周期的影响识别高度可变的特征缩放数据降维聚类输出结果总结介绍 scRNA-seq的标准化是一个重要的预处理步骤,目的是消除技术变异(比如比如测序深度和基因长度等因素),使基因表达和/或样本之间的比较更加可靠。标准化方…...
【OceanBase诊断调优】—— 错误码 5065 和 5066 的区别
适用版本:V2.1.x、V2.2.x、V3.1.x、V3.2.x 5065 与 5066 是两个近似的报错。 OB_ERR_QUERY_INTERRUPTED(-5065): Message: Query execution was interrupted。 含义为执行中断, 例如终端执行 SQL 过程中按 ctrlc 终止 SQL 执行会报 -5065。 OB_ERR_SESSION_INTER…...
Spring Boot RESTful API开发教程
一、RESTful API简介 RESTful API是一种基于HTTP协议的Web API,其设计原则是简单、可扩展、轻量级、可缓存、可靠、可读性强。RESTful API通常使用HTTP请求方法(GET、POST、PUT、DELETE等)来操作资源,使用HTTP状态码来表示操作结…...
<Rust>iced库(0.13.1)学习之番外:如何为窗口添加初始值?
前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 注:新版本已更新为0.13 概述 这是本专栏的番外篇,主要介绍一下新…...
Redis:list类型
Redis:list类型 list命令非阻塞LPUSHLRANGELPUSHXRPUSHRPUSHXLPOPRPOPLINDEXLINSERTLLENLREMLTRIMLSET 阻塞BLPOPBRPOP 内部编码ziplistlinkedlistquicklist 几乎每种语言都有顺序表、数组、链表这样的顺序结构,Redis也做出了相应的支持。 如图ÿ…...
政府采购方式有哪些,竞争性谈判和竞争性磋商的区别
政府采购的方式主要包括公开招标、邀请招标、竞争性谈判、竞争性磋商、询价、单一来源采购和框架协议采购等几种。以下是对这些方式的具体介绍: 公开招标 定义:公开招标是指采购单位依法以招标公告的方式邀请不特定的供应商参与投标的采购方式。适用情形…...
【JavaScript】移动色块案例 实现一个可以拖动并且在拖动过程中会自动改变颜色的色块(JS 事件监听器)
移动色块案例 实现一个可以拖动并且在拖动过程中会自动改变颜色的色块。 移动色块:用户可以通过鼠标按住并拖动页面上的红色方块(#blocks)。当用户按下鼠标左键时,色块开始跟随鼠标的移动而移动;当用户释放鼠标左键时…...
[Linux#62][TCP] 首位长度:封装与分用 | 序号:可靠性原理 | 滑动窗口:流量控制
目录 一. 认识TCP协议的报头 1.TCP头部格式 2. TCP协议的特点 二. TCP如何封装与分用 TCP 报文封装与解包 如何封装解包,如何分用 分离有效载荷 隐含问题:TCP 与 UDP 报头的区别 封装和解包的逆向过程 如何分用 TCP 报文 如何通过端口号找到绑…...
【中短文】区分神经网络中 表征特征、潜层特征、低秩 概念
1. 表征特征(Representational Feature): 表征特征通常指的是输入数据经过NN处理就得到的中间表示或输出表示。 这些特征由NN经学习过程自动提取,能更好捕捉输入数据的本质属性。 例如:在图像识别任务中&…...
MySQL8.0环境部署+Navicat17激活教程
安装MySQL 下载MySQL MySQL官网下载当前最新版本,当前是8.0.39。 选择No thanks, just start my download等待下载即可。 安装MySQL 下载完成后,双击安装进入安装引导页面。选择Custom自定义安装。 选择MySQL Server 8.0.39 - X64安装。 点击Execute执…...
每日读则推(十)——Elon Musk‘s speech on self-driving at Tesla‘s annual meeting
Elon Musk: You cant solve self-driving unless you have millions of cars on the road. n.自动驾驶 v.限制,约束,强迫,迫使“We are no longer compute-constrained for training. 不再 n/v.估算,计…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
