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

基于autodl的imageBind部署

![[Pasted image 20250518165854.png]]

https://github.com/facebookresearch/ImageBind

下载解压后直接

pip install .(python环境已满足,不需要创建新环境)
在本地复制粘贴以下代码,创建1.py


from imagebind import data
import torch
from imagebind.models import imagebind_model
from imagebind.models.imagebind_model import ModalityTypetext_list=["A dog.", "A car", "A bird"]
image_paths=[".assets/dog_image.jpg", ".assets/car_image.jpg", ".assets/bird_image.jpg"]
audio_paths=[".assets/dog_audio.wav", ".assets/car_audio.wav", ".assets/bird_audio.wav"]device = "cuda:0" if torch.cuda.is_available() else "cpu"# Instantiate model
model = imagebind_model.imagebind_huge(pretrained=True)
model.eval()
model.to(device)# Load data
inputs = {ModalityType.TEXT: data.load_and_transform_text(text_list, device),ModalityType.VISION: data.load_and_transform_vision_data(image_paths, device),ModalityType.AUDIO: data.load_and_transform_audio_data(audio_paths, device),
}with torch.no_grad():embeddings = model(inputs)print("Vision x Text: ",torch.softmax(embeddings[ModalityType.VISION] @ embeddings[ModalityType.TEXT].T, dim=-1),
)
print("Audio x Text: ",torch.softmax(embeddings[ModalityType.AUDIO] @ embeddings[ModalityType.TEXT].T, dim=-1),
)
print("Vision x Audio: ",torch.softmax(embeddings[ModalityType.VISION] @ embeddings[ModalityType.AUDIO].T, dim=-1),
)# Expected output:
#
# Vision x Text:
# tensor([[9.9761e-01, 2.3694e-03, 1.8612e-05],
#         [3.3836e-05, 9.9994e-01, 2.4118e-05],
#         [4.7997e-05, 1.3496e-02, 9.8646e-01]])
#
# Audio x Text:
# tensor([[1., 0., 0.],
#         [0., 1., 0.],
#         [0., 0., 1.]])
#
# Vision x Audio:
# tensor([[0.8070, 0.1088, 0.0842],
#         [0.1036, 0.7884, 0.1079],
#         [0.0018, 0.0022, 0.9960]])

python 1.py

模型下载好后就有结果
![[Pasted image 20250518170024.png]]

二、分模态结果解析

1. Vision x Text(视觉 × 文本)

python

运行

tensor([[9.9761e-01, 2.3694e-03, 1.8612e-05],  # 狗的图像[3.3837e-05, 9.9994e-01, 2.4119e-05],  # 汽车的图像[4.7997e-05, 1.3496e-02, 9.8646e-01]],  # 鸟的图像device='cuda:0')
  • 行含义

    • 第 1 行:狗的图像与各文本的匹配概率
      • 9.9761e-01 ≈ 0.9976(狗的图像 → “A dog” 文本):高度匹配,符合预期。
      • 其他值接近 0:狗的图像与 “汽车”“鸟” 文本几乎不相关。
    • 第 2 行:汽车的图像与各文本的匹配概率
      • 9.9994e-01 ≈ 0.9999(汽车的图像 → “A car” 文本):几乎完全匹配
    • 第 3 行:鸟的图像与各文本的匹配概率
      • 9.8646e-01 ≈ 0.9865(鸟的图像 → “A bird” 文本):高匹配度,但略低于前两者(可能因图像细节或文本简洁性差异)。
  • 结论:模型能精准对齐 视觉图像语义文本,同类样本的匹配概率接近 1,非同类几乎为 0。

2. Audio x Text(音频 × 文本)

python

运行

tensor([[1., 0., 0.],  # 狗的音频[0., 1., 0.],  # 汽车的音频[0., 0., 1.]],  # 鸟的音频device='cuda:0')
  • 行含义

    • 第 1 行:狗的音频与各文本的匹配概率
      • 1.0(狗的音频 → “A dog” 文本):完全匹配,说明音频特征(如狗叫声)与文本语义高度对齐。
    • 第 2 行:汽车的音频与各文本的匹配概率
      • 1.0(汽车的音频 → “A car” 文本):可能音频为汽车引擎声,模型能唯一关联到 “汽车” 文本。
    • 第 3 行:鸟的音频与各文本的匹配概率
      • 1.0(鸟的音频 → “A bird” 文本):音频(如鸟鸣)与文本一一对应,无歧义。
  • 结论:音频模态的匹配 完全无误差,表明模型对特定声音(如动物叫声、交通工具声音)的语义理解非常精准。

3. Vision x Audio(视觉 × 音频)

python

运行

tensor([[0.8070, 0.1088, 0.0842],  # 狗的图像[0.1036, 0.7884, 0.1079],  # 汽车的图像[0.0018, 0.0022, 0.9960]],  # 鸟的图像device='cuda:0')
  • 行含义

    • 第 1 行:狗的图像与各音频的匹配概率
      • 0.8070(狗的图像 → 狗的音频):较高匹配,但低于视觉 × 文本(可能因图像和音频的关联不如文本直接)。
      • 0.1088(狗的图像 → 汽车音频)、0.0842(狗的图像 → 鸟音频):非同类音频存在一定干扰,但概率较低。
    • 第 2 行:汽车的图像与各音频的匹配概率
      • 0.7884(汽车的图像 → 汽车音频):高匹配,但略低于狗的图像匹配度(可能因汽车音频(如引擎声)与视觉特征的关联较弱)。
    • 第 3 行:鸟的图像与各音频的匹配概率
      • 0.9960(鸟的图像 → 鸟音频):接近完全匹配,可能因鸟类的视觉特征(如羽毛)与鸣叫声在自然场景中强相关。
  • 结论:视觉与音频的跨模态匹配 整体有效,但同类样本的匹配概率略低于文本模态(可能因视觉和音频的语义关联更间接,需依赖上下文或先验知识)。

http://www.xdnf.cn/news/12806.html

相关文章:

  • 6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
  • VSCode CUDA C++进行Linux远程开发
  • 行为设计模式之Command (命令)
  • 力扣HOT100之二分查找:153. 寻找旋转排序数组中的最小值
  • 管道与进程间通信
  • Riverpod与GetX的优缺点对比
  • KTO: Model Alignment as Prospect Theoretic Optimization
  • 【基础算法】差分算法详解
  • 机器学习的数学基础:神经网络
  • Ajax Systems公司的核心产品有哪些?
  • 华为云Flexus+DeepSeek征文|Dify - LLM 云服务单机部署大语言模型攻略指南
  • 基于Java+VUE+MariaDB实现(Web)仿小米商城
  • 机器学习-经典分类模型
  • 不要调用 TOARRAY() 从 LARAVEL COLLECTION 中获取所有项目
  • DeepSeek-R1-0528:开源推理模型的革新与突破
  • 深入理解 Vue.observable:轻量级响应式状态管理利器
  • UOS 20 Pro为国际版WPS设置中文菜单
  • C++:用 libcurl 发送一封带有附件的邮件
  • Go 并发编程深度指南
  • cmake编译LASzip和LAStools
  • # 主流大语言模型安全性测试(二):英文越狱提示词下的表现与分析
  • Oracle业务用户的存储过程个数及行数统计
  • Linux中MySQL的逻辑备份与恢复
  • 协程的常用阻塞函数
  • 用Ai学习wxWidgets笔记——在 VS Code 中使用 CMake 搭建 wxWidgets 开发工程
  • SQLMesh实战:用虚拟数据环境和自动化测试重新定义数据工程
  • 虚拟电厂发展三大趋势:市场化、技术主导、车网互联
  • Opencv查找图形形状的重要API讲解
  • springboot的test模块使用Autowired注入失败
  • 【storage】