使用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.估算,计…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...

Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...