跨模态神经搜索实践VCED 环境准备

news2025/7/18 8:44:40

跨模态神经搜索实践 环境准备

本文基于WSL2及docker进行环境搭建

1. 安装和配置WSL2 Ubuntu发行版

1.1 安装WSL2 Ubuntu

相关安装命令:

  • wsl --install:默认安装Ubuntu发行版
  • wsl --list --online:查看可支持的发行版本
  • wsl --install -d <Distribution Name>:自定义安装想要的版本
  • wsl --unregister <Distribution Name>:注销或卸载指定Linux发行版
  • wsl --setdefault <Distribution Name>:设置默认启动和安装的发行版

其它WSL命令参考链接

补充:如果觉得命令麻烦,可以在Microsoft Store中搜索Ubuntu安装WSL2 Ubuntu

笔者踩坑:笔者在使用命令行安装Ubuntu时,发现没法打开,即使重启多次仍然无用,在使用Microsoft Store安装Ubuntu时,出现错误,在启用或关闭Windows功能中重新安装适用于Linux的Windows子系统

在这里插入图片描述

1.2 设置Linux用户信息

在开始菜单中打开安装的发行版(笔者这里是Ubuntu),第一次打开需要设置相关用户名和密码即可。

如果忘记密码,可以使用wsl -d ubuntu -u root进行指定发行版,使用passwd <用户名>即可修改密码。

这里还可以设置发行版的wsl版本,通过wsl --set-version <Distribution Name> <version_number>设置

1.3 更换国内源

  • 备份源文件:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  • 修改源文件:sudo vi /etc/apt/sources.list,删除原文件内容,可以直接输入49dd
  • 修改为国内源:内容如下
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  • 换源:sudo apt-get -y update && sudo apt-get -y upgrade

2. 配置VSCode和WSL2

在VSCode中安装WSL2的扩展,笔者选择的是WSL,而非官网中推荐的Remote Development。

安装好后,即可在WSL2 Ubuntu中输入code .命令,使用用本机上的VSCode打开WSL2中当前文件夹。

这里需要注意,如果需要支持代码智能提示、自动编译等功能,需要在每个WSL2中安装对应的插件,但是如VSCode的主题,只需要在本机上的VSCode上安装插件即可。

也就是说,VSCode将本地和远程(WSL2)上的插件分开,需要按需进行安装,如下图:

在这里插入图片描述

3. 配置WSL2和Docker容器

在WSL2中安装Docker有两种方式:

  • 基于Windows下的Docker Desktop安装:官方使用的方式,详见链接
  • 基于原生Linux安装:不推荐,笔者尝试失败,笔者参考链接

3.1 基于原生Linux安装(失败)

这里笔者因为不想在Windows本机上安装Docker,选择第二种方式

  • 安装daemonize
sudo apt install daemonize
sudo apt install -yqq fontconfig daemonize
  • 创建一个脚本:sudo vim /etc/profile.d/00-wsl2-systemd.sh
# Create the starting script for SystemDvi /etc/profile.d/00-wsl2-systemd.sh
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
if [ -z "$SYSTEMD_PID" ]; then   
  sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target   
  SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
fi
if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then 
   exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME
fi
  • 安装依赖:
sudo apt-get update && sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  • 添加docker官方密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 添加docker镜像地址:
### 添加 Docker apt 仓库
sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
  • 安装docker:
sudo apt-get update && sudo apt-get install containerd.io   docker-ce   docker-ce-cli -y
  • 配置docker:sudo mkdir /etc/docker && vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/", "https://hub-mirror.c.163.com/", "https://reg-mirror.qiniu.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
  • 启动docker:
sudo mkdir -p /etc/systemd/system/docker.service.d

3.2 基于Docker Desktop安装

从官网下载docker desktop即可,安装时勾选WSL2即可在WSL2中使用docker

4. 环境准备

4.1 基于docker-compose

这里可以直接基于docker-compose启动项目,这里配置的docker国内镜像源如下:

"registry-mirrors": [
	"https://registry.docker-cn.com",
    "https://hub-mirror.c.163.com/",
    "https://reg-mirror.qiniu.com"
  ]

在Docker Desktop中修改镜像源的方式如下图:

在这里插入图片描述

构建项目:docker-compose build

启动项目:docker-compose up -d

4.2 基于源代码构建

为了方便管理多个python版本,这里在WSL2中基于miniconda构建整个项目

  • 安装miniconda,安装完成后,需要重启终端
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
  • 新建虚拟环境:conda create --name vced python=3.9 -y
  • 启动虚拟环境:conda activate vced
  • 安装依赖:sudo apt install rustc ffmpeg -y
  • 安装clip:pip install git+https://github.com/openai/CLIP.git

4.2.1 启动server

cd code/service
pip install -r requirements.txt
python app.py

4.2.2 启动web

cd code/web
pip install -r requirements.txt
streamlit run app.py

访问localhost:8501即可,最终效果如下图:

在这里插入图片描述

5. Docker Desktop数据迁移

5.1 修改安装路径

Docker Desktop默认安装到C盘,且无法在安装时自定义安装路径,因此这里讲述如何迁移Docker Desktop,这里为了避免意外,选择重装Docker Desktop,当然,参考链接给了不重装修改路径的方式,笔者未尝试。

注:这里只参考了链接中修改安装路径的步骤,其中修改镜像路径的方式是另外的步骤。

在安装之前,首先需要创建Docker Desktop即将安装的实际路径,如D:/Program Files/Docker,然后执行如下命令(注意在命令行中以管理员方式启动):

mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"

然后正常安装Docker Desktop即可。

5.2 修改镜像路径

这里Docker是以WSL2的形式出现的,其中包括两个部分,分别是:

  • docker-desktop:一般占用不会变化太大
  • docker-desktop-data:主要存储镜像文件,占用空间会较大

因此笔者只迁移了docker-desktop-data,如需迁移docker-desktop,操作步骤同docker-desktop-data,具体如下:

  • 关闭wsl2:wsl --shutdown
  • 查看wsl发行版:wsl --list -v,需要确保它们的STATE为Stopped,如下图:

在这里插入图片描述

  • 备份docker-desktop-data数据:wsl --export docker-desktop-data "D:\Program Files\Docker\docker-desktop-data.tar"
  • 注销docker-desktop-data:wsl --unregister docker-desktop-data
  • 重新导入docker-desktop-data:wsl --import docker-desktop-data "D:\Program Files\Docker\data" D:\Program Files\Docker\docker-desktop-data.tar --version 2

重新运行Docker Desktop,确保无误即可删除备份文件

References

  1. WSL 安装
  2. WSL安装及换源
  3. WSL原生安装Docker
  4. VCED项目启动
  5. Docker Desktop切换安装路径
  6. Docker Desktop镜像切换路径

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

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

相关文章

如何将 wordfile 添加到 UltraEdit 或 UEStudio

UltraEdit 本身支持开箱即用的最常用编程和标记语言的语法突出显示。我们也有数百个其他语言的 wordfile&#xff0c;但是&#xff0c;很容易找到和添加您需要的语言&#xff01; 重要提示&#xff1a;此电源提示适用于运行 UltraEdit v15.00或 UEStudio v09.10及更高版本的用户…

Ubuntu18.04系统安装nginx

Ubuntu18.04系统安装nginx一、在线安装 Nginx二、离线安装 Nginx参考链接请确保以具有 sudo 权限的用户身份登录&#xff0c;并且您没有在端口 80 或 443 上运行 Apache 或任何其他 Web 服务器。 一、在线安装 Nginx 简介&#xff1a;Nginx (engine x) 是一个免费的&#xff0…

swift-类属性

了解属性之前&#xff0c;需要先了解前面的swift-类结构内容 - swift-类结构源码探寻 FieldDescriptor TargetClassDescriptor {var Flags: ContextDescriptorFlags // uint32var Parent: TargetRelativeContextPointer // Int32var Name: TargetRelativeDirectPointer // I…

Markdown还能这么玩?这款开源神器绝了!

Markdown是一款轻量级标记语言&#xff0c;由于它易读易写的特性&#xff0c;很多程序员用它来写项目文档。其实Markdown的功能不止于此&#xff0c;结合一些工具使用还可以用来做PPT&#xff0c;今天带大家使用Markdown来做一个PPT&#xff0c;看看到底有多炫酷&#xff01; S…

《springboot那些事》

注&#xff1a;static目录、主要用于存放非模板引擎渲染的资源。 ​ template目录&#xff0c;存放渲染引擎页面的资源。 一句话&#xff1a;用模板引擎的话&#xff0c;就放template目录、否则static目录。 一、使用thymeleaf 引入thymealeaf坐标 <dependency><…

22.11.15打卡 mysql学习笔记

学了DDL和DQL, 今天课太多, 没怎么学啊, 很烦躁, 还有3周要考试了 空格可以有一个或者多个 if not exists表示不存在则执行, 存在则不执行 方括号当中的都可 create database itcase; show databases;查看数据库 再次创建itcase数据库 加上if not exists就不会报错 字符集演示 …

DPDK LPM库(学习笔记)

1 LPM库 DPDK LPM库组件为32位的key实现了最长前缀匹配&#xff08;LPM&#xff09;表查找方法&#xff0c;该方法通常用于在IP转发应用程序中找到最佳路由匹配。 2 LPM API概述 LPM组件实例的主要配置参数是要支持的最大规则数。 LPM前缀由一对参数&#xff08;32位Key&…

React源码分析3-render阶段(穿插scheduler和reconciler)

本章将讲解 react 的核心阶段之一 —— render阶段&#xff0c;我们将探究以下部分内容的源码&#xff1a; 更新任务的触发更新任务的创建reconciler 过程同步和异步遍历及执行任务scheduler 是如何实现帧空闲时间调度任务以及中断任务的 触发更新 触发更新的方式主要有以下几…

Leetcode第21题:合并两个有序链表

生命无罪&#xff0c;健康万岁&#xff0c;我是laity。 我曾七次鄙视自己的灵魂&#xff1a; 第一次&#xff0c;当它本可进取时&#xff0c;却故作谦卑&#xff1b; 第二次&#xff0c;当它在空虚时&#xff0c;用爱欲来填充&#xff1b; 第三次&#xff0c;在困难和容易之…

面试官:你说说 Mysql 索引失效有哪些场景?

前言 SQL 写不好 加班少不了 日常工作中SQL 是必不可少的一项技术 但是很多人不会过多的去关注SQL问题。 一是数据量小&#xff0c;二是没有意识到索引的重要性。本文主要是整理 SQL失效场景&#xff0c;如果里面的细节你都知道&#xff0c;那你一定是学习能力比较好的人&am…

基于Docker的网络安全靶场搭建

背景介绍 在学习网络安全技术过程中,我们往往需要有一个自己的操作机与多个用来搭建环境的靶机,使用VM虚拟机模拟资源占用较大,成本高、局限性大且使用十分不便。 这时我们可以使用一台安装好Docker环境的linux虚拟机来完成桌面版操作机与WEB靶机的搭建与实验操作。 Docker…

Linux操作系统~进程替换,exec系列函数的使用

目录 1.概念/原理 &#xff08;1&#xff09;.替换原理 &#xff08;2&#xff09;.子进程调用execl执行程序替换&#xff0c;为什么父进程不受影响&#xff1f; &#xff08;3&#xff09;.exec*返回值 2.替换函数exec execl execv execlp execvp的&#xff08;execv…

Android Studio App开发之网络通信中使用POST方式调用HTTP接口实现应用更新功能(附源码 超详细必看)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、POST方式调用HTTP接口 POST方式把接口地址与请求报文分开&#xff0c;允许使用自定义的报文格式&#xff0c;由此扩大了该方式的应用场景。POST请求与GET请求主要有三处编码差异 1&#xff1a;在调用setRequestMethod方…

Kafka 消息队列 ( 一 ) 基本概念

0.MQ(message queue) 消息中间件 生活中的问题 : 快递员 给 你 送东西, 你必须 在家等着, (效率低) 可以 把东西 放 指定 的 地方(菜鸟驿站) , 你自己去取 , 指定 的地点(菜鸟驿站) 就是 MQ 消息队列中间件 0.1.开发中的问题 0.1.1.异步问题 0.1.2.业务解耦 0.1.3.流量削…

2. 信息在计算机中存储的格式

目录 一、信息存储&#xff1a; 1. 空间大小定义 2. 不同进制的转换方法 3. 各种数据类型所占字节数 4. 字节顺序 5. 字符串存储 6. 代码的二进制表示 7. 布尔代数运算 8. 逻辑运算 9. 移位运算 二、 整数表示 1. 有符号与无符号表示 1.1 表示范围 1.2 补码编码的…

C语言日记 35 拷贝构造函数

书P132&#xff1a; 拷贝构造函数的作用是 用已存在的对象初始化另一对象&#xff0c;两对象类类型应一样 在这里我们可以看到&#xff0c; 他对被拷贝的对象的要求只有“已存在的对象&#xff0c;两对象类类型一样”&#xff0c;也就是说他这里也没有说我们不能跨区域&…

使用 Spring Cloud Loadbalancer 实现客户端负载均衡

使用 Spring Cloud Loadbalancer 实现客户端负载均衡 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;使用 Spring Cloud Loadbalancer 实现客户端负载均衡 CSDN&#xff1a;使用 Spring Cloud Loadbalancer 实现客户端负载均衡 背景 在Spring Cloud G 版…

为什么 think-cell 图表中的标签显示为白色矩形?

有些标签的背景错误地变成白色&#xff0c;或显示幻灯片背景。当前版本的 PowerPoint 不会出现此问题。 •使用 PowerPoint 2007 打开 .ppt 文件并单击标签内部时&#xff0c;将显示正确的标签背景&#xff0c;但是在保存后重新打开该文件时&#xff0c;会返回不正确…

分布式系统的 38 个知识点

天天说分布式分布式&#xff0c;那么我们是否知道什么是分布式&#xff0c;分布式会遇到什么问题&#xff0c;有哪些理论支撑&#xff0c;有哪些经典的应对方案&#xff0c;业界是如何设计并保证分布式系统的高可用呢&#xff1f; 1. 架构设计 这一节将从一些经典的开源系统架…

5G无线技术基础自学系列 | 物理随机接入信道

素材来源&#xff1a;《5G无线网络优化实践》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 PRACH信道用于传输前导Preamble序列。gNB…