2022.11组队学习——跨模态视频搜索VCED

news2025/7/8 4:20:21

文章目录

    • 一、环境配置(1.2章节可跳过)
      • 1.1 docker启动本项目
        • 1.1.1 win10下安装docker
        • 1.1.2 配置容器
        • 1.1.3 启动项目
      • 1.2 使用vmware下的liunx启动本项目
        • 1.2.1 升级python3.9
        • 1.2.2 安装其他包
      • 1.3 使用WSL下的linux启动本项目
        • 1.3.1 安装WSL
        • 1.3. 2安装Ubuntu
        • 1.3.3 运行项目

项目地址《datawhalechina/vced》

一、环境配置(1.2章节可跳过)

这部分环境配置参考《[datawhale202211]跨模态神经搜索实践:环境配置》

1.1 docker启动本项目

1.1.1 win10下安装docker

参考文章:

  • 《win10系统安装docker (2022年最新填坑)》、jina在windows安装、jina官网、
  • 《docker-compose教程(安装,使用, 快速入门)》、《安装并开始设置 Windows 终端》

  下载docker的windows安装包,直接安装就行(默认勾选的WSL不要改),安装完后重启。我是装过centos的,中间有些步骤就省了(看上面帖子)。

  • 报错1:
    在这里插入图片描述
    这是WSL2需要更新,最新版WSL2点击下载安装就行,安装完后点restart。
  • 报错2:无法启动
Docker.Core.DockerException:
Failed to start
   在 Docker.Engines.LinuxkitDaemonStartup.<WaitAsync>d__5.MoveNext() 位置 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.Engines\LinuxkitDaemonStartup.cs:行号 54
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__26.MoveNext() 位置 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\LinuxWSL2Engine.cs:行号 170
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() 位置 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:行号 29
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 67
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 92

以管理员权限运行docker就行。
安装完后,在cmd命令行输入docker run hello-world会显示:

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
  1. 安装docker compose,升级pip(pip不升级一会会安装失败)
pip install docker compose
python.exe -m pip install --upgrade pip

1.1.2 配置容器

下载本项目
使用代码git clone https://github.com/datawhalechina/vced.git下载项目源码时报错warning: Clone succeeded, but checkout failed,原因是有个文件名的路径过长。解决办法是进入文件夹的目录中,执行:

git config core.longpaths true
git status
git restore --staged .
git restore .

开始安装

在刚刚克隆的vced项目文件夹下,运行bush命令:

docker-compose build

安装完成后显示:(pip要升级到22.3.1)

LS@DESKTOP-OHLNREI MINGW64 /e/Git Bash/vced (main)
$ docker-compose build
[+] Building 1893.0s (12/12) FINISHED
 => [internal] load build definition from Dockerfile                       1.1s
 => => transferring dockerfile: 505B                                       0.0s
 => [internal] load .dockerignore                                          1.5s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for docker.io/richardbst/container4vced:late  1.7s
 => [internal] load build context                                          0.6s
 => => transferring context: 2.73kB                                        0.0s
 => [1/7] FROM docker.io/richardbst/container4vced@sha256:a0eec5084bb4615  0.0s
 => CACHED [2/7] WORKDIR /code                                             0.0s
 => CACHED [3/7] COPY requirements.txt requirements.txt                    0.0s
 => CACHED [4/7] RUN pip config set global.index-url https://pypi.tuna.ts  0.0s
 => [5/7] RUN pip install torch==1.11.0 -i  https://pypi.douban.com/sim  672.6s
 => [6/7] RUN pip install -r requirements.txt     && pip install git+h  1155.3s
 => [7/7] COPY . .                                                         3.2s
 => exporting to image                                                    54.2s
 => => exporting layers                                                   49.2s
 => => writing image sha256:62818884495f70b99644f4616f6b3893757804dd06a17  0.4s
 => => naming to docker.io/library/vced-vced                               0.2s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and l
earn how to fix them
(base)
LS@DESKTOP-OHLNREI MINGW64 /e/Git Bash/vced (main)

然后运行docker-compose up -d,成功之后,在docker desktop中可以看到配置好的vced容器:
在这里插入图片描述

1.1.3 启动项目

运行vced容器,需要稍微等一会会儿,等到显示web启动完成。
在这里插入图片描述
通过port可以进入项目
在这里插入图片描述
打开后显示
在这里插入图片描述
上传视频之后点击搜索,可能会报错:
在这里插入图片描述这是因为第一次要下载编码文件,运行docker-compose restart 就可以了。

1.2 使用vmware下的liunx启动本项目

  安装docker之后无法启动VMware,报错不兼容。解决办法参考《解决VMware Workstation 与 Device/Credential Guard不兼容》。这部分我之前的centos估计被我玩坏了,出现各种问题难以解决,我放弃了,在1.3 中重装ubuntu20。

1.2.1 升级python3.9

  1. 下载python3.9
    本人已安装centos8,这里就不写了。下面是升级python3.9。进入usr/local文件夹,下载安装包:
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
tar xzf Python-3.9.0.tgz
cd Python-3.9.0
  1. 在Python-3.9.0目录下生成安装配置文件:
./configure --prefix=/usr/local/Python3.9.0
"""(可选)If you want a release build with all stable optimizations active 就运行:"""
./configure --enable-optimizations # 可选,gcc版本4.8.5太低会出错,就不要运行这一行

"""altinstall 不自动创建链接,需要手动创建,建议使用,保障多个版本共存:"""
make && make  altinstall
  1. 正确安装之后运行/usr/local/python3.9/bin/python3.9显示:
[root@localhost Python-3.9.0]# /usr/local/python3.9.0/bin/python3.9
Python 3.9.0 (default, Dec 18 2021, 21:47:55) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
  1. 配置环境变量和建立软连接:
export PYTHON_HOME=/usr/local/python3.9.0 # 少写了一个0,后面出了一堆错误
export PATH=${PYTHON_HOME}/bin:$PATH
source /root/.bashrc # 刷新使上面命令生效
ln -s /usr/local/python3.9.0/bin/python3.9 /usr/bin/python3
python3 -V
Python 3.9.0

5 .踩坑
我之前安装完报错,就是gcc太低还运行了上面第二步

SystemError: <built-in function compile> returned NULL without setting an error
generate-posix-vars failed
make: *** [pybuilddir.txt] 错误 1

参考《python 3.8.0 编译报错 Could not import runpy module 解决方案》,这是因为在低版本的gcc版本(我的是gcc 4.8.5 )中带有 --enable-optimizations 参数时会出现上面问题,解决办法是:

  • 升级gcc至8.1.0【不推荐】
  • ./configure参数中去掉 --enable-optimizations(liunx还原后执行上面步骤,只是去掉./configure --enable-optimizations就行)

  我一开始运行yum update -y等等升级没用,后来只找到是要升级gcc,于是下载升级gcc 11.2(参考帖子《Centos 8安装gcc的方法》,下载gcc源码包)。结果make编译4小时后make install失败了,报错/libcc1/findcomp.cc:21:10: 致命错误:string:没有那个文件或目录,我疯了,参考参考《切换编译器》,貌似是只能在opt里面编译,我将gcc下在了usr/local,所以编译前需要运行以下代码:

#新建gcc-bulid目录(与gcc-10.2.0同级)并进入该目录中:
mkdir gcc-build
cd gcc-build/
# 生成Makefile文件
../gcc-11.2.0/configure -prefix=/usr/local --enable-checking=release --enable-languages=c,c++ --disable-multilib

1.2.2 安装其他包

pip install rust -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

不知道为啥直接安装总报错,感觉我的centos已经废了

1.3 使用WSL下的linux启动本项目

参考《WSL官方文档》、《颠覆虚拟机的神器——WSL来了》、《Microsoft Learn:WSL 入门》
WSL2与VMware不兼容问题解决:

  • 将WSL2降级成WSL1(WSL1可以兼容VMware)
  • 启用VMware时cmd管理员模式输入命令bcdedit /set hypervisorlaunchtype off,启用WSL2时输入bcdedit /set hypervisorlaunchtype auto。输入bcdedit /enum可以查看是否修改成功,之后可能要重启生效。

1.3.1 安装WSL

  WSL是windows10的一个子系统(windows subsystem for linux),其作用是在windows下运行GNU/linux操作系统 (包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。

  在从使用者的角度看,wsl和虚拟机软件是类似的,都可以装linux操作系统,使用其各种功能;但底层实现不一样,wsl运行linux的资源开销没有在虚拟机软件中运行linux的资源开销大。

  1. 打开wsl子系统
    1.0安装的时候需要打开windows可选功能中的“适用于Linux的Windows子系统”,2.0安装的时候不仅要打开可选功能中的“适用于Linux的Windows子系统”,还要打开“虚拟机平台”这个可选功能。
    在这里插入图片描述

1.3. 2安装Ubuntu

以管理员运行cmd,可输入以下命令

命令功能
wsl --list --online查看在线商店获 Linux 版本列表
wsl --list --verbose列出已安装的 Linux 发行版
wsl-cd dir更换工作目录
wsl --distribution <Distribution Name> --user <User Name>通过特定用户运行特定 Linux 发行版
wsl --import <Distribution Name> <InstallLocation> <FileName>导入指定的 tar 文件作为新的分发版
wsl --unregister <DistributionName>注销或卸载 Linux 发行版
wsl --help查看帮助
wsl --export Ubuntu G:\WSL\myUbuntu.tar备份Ubuntu成tar文件,也可以改别的linux系统名
wsl --import Ubuntu install_location file_name.tarwsl迁移
wsl --unregister distro_name删除wsl

我使用的默认安装wsl --install -d Ubuntu,安装后提示输入用户名和密码,之后显示

Welcome to Ubuntu 20.04 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

此时ubuntu已经在开始菜单栏了,点击就可以打开ubuntu20.04的命令行界面:
在这里插入图片描述
建议此时马上备份,然后迁移到别的盘

wsl --export Ubuntu D:\WSL\Ubuntu20.tar # 导出
wsl --unregister Ubuntu # 注销原版本
wsl --set-version2 # 设置默认使用wsl2版本
wsl --import Ubuntu-20.04 D:\Ubuntu D:\WSL\Ubuntu20.tar # 导入

Ubuntu设置

这部分内容参考《设置 WSL 开发环境》。

  • 在资源管理器输入\\wsl$,会列出所有安装的linux系统,点击进入就可以看到文件:(如果你指定迁移到别的盘,比如上面就装在D:\Ubuntu,文件就在这里)
    在这里插入图片描述

下面都是一些介绍功能,我git在windows上都装了,跳过

  • 建议使用 Visual Studio Code 或 Visual Studio,因为它们直接支持使用 WSL 进行远程开发和调试。Visual Studio Code 使你能够将 WSL 用作功能完备的开发环境。 Visual Studio 提供了对 C++ 跨平台开发的本机 WSL 支持。

  • 使用 Git 设置版本管理:参考git分布指南。将项目连接到 Git 版本控制系统,同时使用凭据管理器进行身份验证(,使用 Git Ignore 文件,了解 Git 行尾,以及使用内置到 VS Code 的 Git 命令(可使用Git for Windows在 WSL 和 Windows 主机之间共享凭据&设置,之前装过Git就不用再装了)

  • 使用 Docker 设置远程开发容器:参考《WSL 2 上的 Docker 远程容器入门》,使用 Docker Desktop for Windows 将项目连接到远程开发容器。

  • 设置数据库:按照此分步指南开始使用 WSL 上的数据库,并将项目连接到 WSL 环境中的数据库。(MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。)
    在这里插入图片描述

  • 设置 GPU 加速以提高性能

1.3.3 运行项目

  1. apt换源更新
    首先apt换源,不然下载太慢。参考《Ubuntu更换国内源(apt更换源)》
# 修改sources.list配置文件:
sudo vim /etc/apt/sources.list
# 在文件最前面添加以下条目来更新源,保险起见,的操作之前做好备份
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

# 清华源:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

sudo apt-get update # 更新源
sudo apt install python3.9
su - # 进入root环境
su username # user用户登录

2.安装miniconda(pip没配好,可跳过)

# 下载安装miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 给安装文件添加执行指令
sudo chmod +x Miniconda3-latest-Linux-x86_64.sh
# 安装
sudo ./Miniconda3-latest-Linux-x86_64.sh

中间两次yes(同意条款和初始化),然后选择路径:

Miniconda3 will now be installed into this location:
/root/miniconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/root/miniconda3] >>> 这里可以输入路径,例如:/opt/miniconda

我这里直接选择默认,装在/root/miniconda3,然后设置环境变量:

vim ~/.bashrc
# 最后一行添加下面路径
export PATH="/root/miniconda3/bin:$PATH"
alias python='/usr/bin/python3.9' # 配置python3.9
source ~/.bashrc	# 生效环境变量
python # 显示python3.9说明配置成功
conda create -n vced python==3.9 # 创建虚拟环境,配置python3.9,环境名叫做vced

报错CondaHTTPError: HTTP 000 CONNECTION FAILED for url,此时退出ubantu,cmd输入wsl --shutdown关闭之后再重启ubantu,输入su -进入root模式。再创建环境,如果还是不行就 conda换源:

vim ~/.condarc #编辑配置文件,加入以下代码

channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/free/
  - https://mirrors.ustc.edu.cn/anaconda/pkgs/free/

show_channel_urls: true
remote_read_timeout_secs: 1000.0
conda activate vced # 激活环境
conda info --envs	# 验证是否成功
conda update -n base conda        //update最新版本的conda
conda create -n xxxx python=3.5   //创建python3.5的xxxx虚拟环境
conda activate xxxx               //开启xxxx环境
conda deactivate                  //关闭环境
conda env list                    //显示所有的虚拟环境

环境激活成功,但是pip有问题。/usr/local/bin/python3.9 -m pip install --upgrade pip升级pip出错。

  1. 安装其它包
# 安装rust,选择1(默认安装)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

在这里插入图片描述

sudo apt-get install ffmpeg # 安装ffmpeg
  1. 项目server环境配置
  • pip安装时警告The script pysemver is installed in ‘/home/zhxscut/.local/bin’ which is not on PATH,运行以下代码
  • 我安装过程中出现一次下载torch时ssl错误,重新pip安装就没了,不知道为啥
  • 安装完全部文件后试了一次备份操作wsl --export Ubuntu Ubuntu20.tar,花了半个小时左右。所以WSL备份不如vmware方便。
sudo vim ~/.zshrc 
#把export PATH=/home/zhxscut/.local/bin/:$PATH  放到最后
source ~/.zshrc  # 忘记运行此命令,结果下面运行streamlit run app.py时显示没有streamlit这个命令
# 下载本项目
git clone https://github.com/datawhalechina/vced.git
sudo apt install python3-pip # 安装pip
#考虑到下载很慢,请在Ubuntu系统中配置pip源
mkdir ~/.pip
vim ~/.pip/pip.conf
# 豆瓣源
[global]
trusted-host = pypi.douban.com
index-url = http://pypi.douban.com/simple
# 清华源
[global]
trusted-host =  pypi.tuna.tsinghua.edu.cn
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

# server环境配置
cd code/service
pip install -r requirements.txt

2天前更新了service文件夹下的requirements.txt,安装这个就行(安装包列表如下)

jina==3.4.2
webvtt-py==0.4.6
ffmpeg-python==0.2.0
torchvision==0.12.0
ftfy==6.1.1
regex==2022.4.24
tqdm==4.64.0
transformers==4.9.1
scipy==1.8.0
pillow==9.1.0
tornado==6.1
protobuf==3.20
librosa==0.9.1
streamlit==1.12.0
myst-parser==0.18.1
  1. 安装CLIP
    CLIP安装过程会安装torch和torchvision,在我的实践中其安装版本与后续service环境配置有冲突,故CLIP的安装这一步可挪到service环境配置后进行。
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/nvidia-cuda-runtime-cu11/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7faf99351dc0>: Failed to establish a new connection: [Errno 111] Connection refused')': /simple/nvidia-cuda-runtime-cu11/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7faf99351160>: Failed to establish a new connection: [Errno 111] Connection refused')': /simple/nvidia-cuda-runtime-cu11/
# 安装CLIP
pip install git+https://github.com/openai/CLIP.git 
  1. 启动项目
  • 启动服务端
cd code/service
python3 app.py

启动服务端时如果报错:
在这里插入图片描述
出现问题的原因是python3.8与python3.9语言特性的不同。具体为:python3.9所支持的函数变量类型定义描述方式:dict[list]及list[int]在python3.8中不被支持。根据其他学习者提供的debug方法,定位至code/service/customIndexer/executor.py文件,定位至文件对应段落,删去此函数变量类型定义,文件中共计两处:

def getNextMaxItem(self, result: list, ignore_range):#ignore_range: dict[list]
	...
def getRange(self, maxItem, result: list, thod = 0.1, ignore_range = None):#ignore_range:  list[int] = None
	...

再次启动,正常运行:
在这里插入图片描述

  • ctrl+C另起一行,启动前端
cd ../web
streamlit run app.py

  如果报错:ImportError: Pandas requires version '3.0.0' or newer of 'jinja2' (version '2.10.1' currently installed).,打开打开\wsl$\Ubuntu\home\zhxscut.local\lib\python3.8\site-packages\pandas\compat_optional.py发现需要3.0.0版本,更新jinja2:

pip install --upgrade jinja2==3.0.0

重新运行后成功:
在这里插入图片描述
我现在的问题就是,在一个ubantu里运行就报错:
两个ubantu运行报错:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

预测市场赛道新机遇:Moonquiz生态基于FIFA WORLD CUP推出首个预测应用

对未来事件的预测始终有着较为重要的意义&#xff0c;无论是对天气、地质灾害等的预测&#xff0c;还是对金融市场、事件走势等的预测&#xff0c;都有望让个人和组织对潜在的风险进行对冲&#xff0c;并获得最大化收益。 从Web3领域看&#xff0c;预测市场是活跃于加密行业早期…

M1 在VMware里安装Centos8

本文档主要介绍Mac M1芯片如何通过Vmware虚拟机&#xff0c;安装Centos系统。 安装准备 安装之前需要下载虚拟机安装包和Centos8镜像。 百度云自取链接: https://pan.baidu.com/s/19bPaU5Vf8HG6sv3C_jZDXw 提取码: 6jen 链接内容如下&#xff0c;centos8镜像&#xff0c;vm…

Linux零拷贝解析

目录 先备知识 物理内存 虚拟内存 内核空间和用户空间 内核空间 用户空间 DMA传输 上下文切换 传统IO执行流程 零拷贝实现的几种方式 用户态直接I/O mmapwrite实现的零拷贝 sendfile实现的零拷贝&#xff08;用户不可见&#xff09; sendfileDMA scatter/gather实…

kubernetes(K8S)学习笔记P1:基本概念和架构

kubernetes&#xff08;K8S&#xff09;学习笔记1.基本概念和架构1.1K8s概述和特性1.1.1概述1.1.2特性1.2K8s架构组件1.3平台规划1.4服务器硬件配置要求1.4.1测试环境1.4.2开发环境 (要求更高)1.5搭建k8s集群部署方式1.5.1 kubeadm 方式&#xff08;简单&#xff09;1.5.2二进制…

数据结构---串(整个部分)

串基本概念&#xff1a;串是由零个或者多个字符组成的有限序列&#xff0c;一半记作Sa1,a2,a3,a4.......&#xff08;n>0&#xff0c;串的长度&#xff09; 1.S 串的名字 n 串当中字符串的个数&#xff0c;称为串的长度。 串的常用术语 1.空串&#xff08;null stri…

[附源码]计算机毕业设计JAVA红河旅游信息服务系统

[附源码]计算机毕业设计JAVA红河旅游信息服务系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

Swin Transformer代码实现部分细节重点

swin transformer 1.patch-merging部分 代码&#xff1a;【amazing】 x0 x[:, 0::2, 0::2, :] # [B, H/2, W/2, C] 对应图片所有 1 的位置x1 x[:, 1::2, 0::2, :] # [B, H/2, W/2, C] 对应图片所有 3 的位置x2 x[:, 0::2, 1::2, :] # [B, H/2, W/2, C] 对应图片所有…

pve独显直连

目录折腾初步工作安装配置源去除订阅提示安装vim开启iommu屏蔽显卡驱动创建虚拟机体验折腾 买了个新笔记本&#xff0c;老的笔记本也没啥用了&#xff0c;挂二手平台也出不了多少钱。就想着自己折腾的新东西。之前有个PVE虚拟机感觉很不错&#xff0c;现在尝试一下怎么使用 初…

用HTML+CSS6音乐吧 7页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 音乐网页设计 | 仿网易云音乐 | 各大音乐官网网页 | 明星音乐演唱会主题 | 爵士乐音乐 | 民族音乐 | 等网站的设计与制作 | HTML期末大学生网页设计作…

[附源码]SSM计算机毕业设计在线购物系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

英文版通信原理学习通题库

1、 能量信号的功率趋于&#xff08; &#xff09; A、 无穷 B、 0 C、 非零值 答案&#xff1a; B 2、周期信号的频谱是&#xff08; &#xff09; A、 连续谱 B、 离散谱 C、 既有连续谱&#xff0c;又有离散谱 答案&#xff1a; B 3、 信号的频谱如所示&…

第十三届蓝桥杯c++b组-积木画

题目描述 小明最近迷上了积木画&#xff0c;有这么两种类型的积木&#xff0c;分别为 I 型&#xff08;大小为 2 个单位面积&#xff09;和 L 型&#xff08;大小为 3 个单位面积&#xff09;&#xff1a; 同时&#xff0c;小明有一块面积大小为 2 N 的画布&#xff0c;画布…

云原生路由架构探索

以部署场景为中心的网络架构 网络技术的发展一直以来是以部署场景为中心&#xff0c;很多设备厂商也很自然的分成运营商 、数据中心 、企业网 、终端 等各个事业部。很多网络技术也是为了解决某个特定场景的问题而提出的。当然在这个过程中也相互借鉴&#xff0c;例如将MPLS V…

基于java+ssm教学质量评价系统(学生评教)-计算机毕业设计

项目介绍 教学质量是高等教育的生命线&#xff0c;提高教学质量是提高教育质量的前提&#xff0c;因此也是学校的首要任务。学生评价教师作为教师评教的重要途径&#xff0c;正在被很多学校采纳。学生评价教师体现了学校管理者对学生权利的尊重&#xff0c;以及促进师生沟通的…

Linux常见命令与Java环境部署

⭐️前言⭐️ &#x1f349;博客主页&#xff1a; &#x1f341;【如风暖阳】&#x1f341; &#x1f349;精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&…

ijkplayer基于rtsp直播延时的深度优化

现在ijkPlayer是许多播放器、直播平台的首选&#xff0c;相信很多开发者都接触过ijkPlayer&#xff0c;无论是Android工程师还是iOS工程师。本文主要是总结&#xff0c;也是与大家探讨RTSP直播的延时优化。 目录 一、修改编译脚本支持RTSP 二、修改播放器的option参数 三、…

WEB基础

互联网简介 互联网是世界上最大的计算机网络 互联网被称为网络的网络 万维网是互联网中的一个子网 WWW包含分散在世界范围内的众多Web 服务器&#xff08;World Wide Web&#xff09;WEB web即全球广域网World Wide Web&#xff0c;也称万维网&#xff0c;是一种基于超文本和HT…

基于ssm+mysql+jsp作业管理(在线学习)系统

基于ssmmysqljsp作业管理&#xff08;在线学习&#xff09;系统一、系统介绍二、功能展示1.用户登陆2.用户注册3.在线学习&#xff08;评论&#xff09;--学生4.任务列表--学生5.我的作业--学生6.个人中心7.发布课程--老师8.发布任务--老师9.评阅作业10.后台管理--管理员一、系…

RabbitMQ初步到精通-第五章-RabbitMQ之消息防丢失

目录 第五章-RabbitMQ之消息防丢失 1.消息是如何丢的 ​编辑 2.如何控制消息丢失 2.1 生产者发送消息到Broker过程 2.2 Broker内部过程 2.2.1 Exchange发送至queue过程-Return机制 2.2.2 queue存储过程 2.3 消费者消费过程-消费端确认 3.最佳实践 第五章-RabbitMQ之消息…