alike-cpp 编译

1. 源码链接:

https://github.com/Shiaoming/ALIKE-cpp

2.已经安装好显卡驱动,cuda,cudnn,没安装的参考:

切记装cuda-11.x的版本,最好cuda11.3的版本

ubuntu重装系统后,安装cuda,cudnn-CSDN博客

3.安装opencv

下载所需要的版本,camke 安装即可

4.libtorch

官网给出了下载链接(用这个最好):https://download.pytorch.org/libtorch/cu113/libtorch-cxx11-abi-shared-with-deps-1.11.0%2Bcu113.zip

但是只支持cuda11.3的版本,由于系统是ubuntu 22.04,无法安装cuda11.3的版本,我这里是安装的cuda11.8的版本,需要pytorch的支持的版本也是11.8的,找到libtorch的下载网址:https://download.pytorch.org/libtorch/cu118,其他版本可参考:清华源和torch源_torch清华源-CSDN博客

将CMakeLists.txt中的torch路径指定到刚才下载的版本上:

set(Torch_DIR "/xx/libtorch/share/cmake/Torch")

然后开始编译:

mkdir build

cd build

cmake ..

make

编译完成后运行时报错:

terminate called after throwing an instance of 'c10::CUDAError' what(): CUDA error: an illegal memory access was encountered CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.

应该是torch版本不兼容,我下载的是torch2.0.0+cu118,应该用torch1.11.0+cu118, 

这里不要用cuda12以上的版本,编译很浪费时间,直接换成cuda-11.x的版本,别问我怎么知道的

5.下载pytorch源码进行编译

参考:【libtorch】pytorch源码编译生成c++ 17 libtorch记录_libtorch编译-CSDN博客

(1)先下载pytorch源码,不要从官网下载source,里面third_party中的内容还要单独下载,直接用下面的命令下载:

git clone https://github.com/pytorch/pytorch.git

(2)切换到libtorch版本对应tag

cd pytorch
git tag -l *1.11.0*        // git tag查看版本,git tag -l搜索特定版本的tag
git checkout v1.11.0    // 切换到特定tag的代码    

(3)更新所有显示modified的submodule

git submodule sync
git submodule update --init --recursive

(4)cmake 安装:

cd pytorch
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/libtorch -D CMAKE_CXX_STANDARD=17 -D CMAKE_CXX_STANDARD_REQUIRED=ON -D USE_CUDA=ON -D USE_CUDNN=ON -DCMAKE_CUDA_ARCHITECTURES=86 ..
make -j4
make install

将CMakeLists.txt中的torch路径指定到刚才编译的版本上即可:

set(Torch_DIR "/opt/libtorch/share/cmake/Torch")

(5)编译时提示:

可忽略,也可参考:cmake配置libtorch报错Failed to compute shorthash for libnvrtc.so-CSDN博客,在CMakeLists.txt最开始加上find_package(PythonInterp REQUIRED)

(6)运行: ./demo 图像文件夹目录 模型 --cuda

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(十三)-更换无人机控制器

引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…

vitest 单元测试应用与配置

vitest 应用与配置 一、简介 Vitest 旨在将自己定位为 Vite 项目的首选测试框架,即使对于不使用 Vite 的项目也是一个可靠的替代方案。它本身也兼容一些Jest的API用法。 二、安装vitest // npm npm install -D vitest // yarn yarn add -D vitest // pnpm pnpm …

应用实践之基于MindNLP+MusicGen生成自己的个性化音乐

前言 MusicGen是基于单个语言模型(LM)的音乐生成模型,使用文本描述或音频提示生成高质量的音乐样本。它基于Transformer结构,包括文本编码器模型和音频压缩模型,以及一个解码器来预测离散的隐形状态音频token。与传统…

《mysql篇》--JDBC编程

JDBC是什么 JDBC就是Java DataBase Connectivity的缩写,翻译过来就很好理解了,就是java连接数据库。所以顾名思义,JDBC就是一种用于执行SQL语句的JavaApl,是Java中的数据库连接规范。为了可以方便的用Java连接各种数据库&#xff…

WSL2 的安装与运行 Linux 系统

前言 适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,允许开发人员在 Windows 系统上直接安装并使用 Linux 发行版。不用进行任何修改,也无需承担传统虚拟机或双启动设置的开销。 可以将 WSL 看作也是一个虚拟机,但是它更为便…

Contact Form联系表单自动发送邮件(超级简单)

前几天发现了aoksend推出的这个联系表单的组件,非常好用,只有一个php文件,把php文件放到网站主目录里面。然后去aoksend注册和配置好域名和发信邮箱,可以得到发送密钥:app_key,然后配置好邮件模板&#xff…

线程安全(二)synchronized 的底层实现原理、锁升级、对象的内存结构

目录 一、基础使用1.1 不加锁的代码实现1.2 加锁的代码实现二、实现原理2.1 synchronized 简介2.2 对象监控器(Monitor)2.3 加锁过程第一步:判断 Owner 指向第二步:进入 EntryList 阻塞第三步:主动进入 WaitSet 等待三、锁升级3.1 对象的内存结构3.2 Mark Word 对象头3.3 …

全方位指南,电子期刊制作入门到精通

在这个数字化时代,电子期刊作为一种新兴的媒体形式,以其方便快捷、互动性强、传播范围广等特点,受到越来越多人的青睐。那么,如何制作出一本既专业又有吸引力的电子期刊呢? 一、选择合适的制作软件 首先,选…

Docker 使用基础(7)—Dockerfile

​ 🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:秒針を噛む—ずっと真夜中でいいのに。 0:34━━━━━━️💟──────── 4:20 🔄 ◀️ ⏸…

Pod网络、Service网络、网络插件Calico、网络插件Flannel(2024-07-12)

一、Pod网络 在K8S集群里,多个节点上的Pod相互通信,要通过网络插件来完成,比如Calico网络插件。 使用kubeadm初始化K8S集群时,有指定一个参数 --pod-networkcidr10.18.0.0/16 它用来定义Pod的网段。而我们在配置Calico的时候&…

视频号矩阵系统源码,实现AI自动生成文案和自动回复私信评论,支持多个短视频平台

在当今短视频蓬勃发展的时代,视频号矩阵系统源码成为了自媒体人争相探索的宝藏。这一强大的技术工具不仅能帮助我们高效管理多个短视频平台,更能通过AI智能生成文案和自动回复私信评论,为自媒体运营带来前所未有的便利与效率。 一、视频号矩…

【排序算法】—— 归并排序

归并排序时间复杂度O(NlongN),空间复杂度O(N),是一种稳定的排序,其次可以用来做外排序算法,即对磁盘(文件)上的数据进行排序。 目录 一、有序数组排序 二、排序思路 三、递归实现 四、非递归实现 一、有序数组排序 要理解归…

unity3d脚本使用start,updata,awake

最近学了一下unity,脚本编写用的c#,虽说没学过c#但是勉强根据教学还能写点代码。 在这里我来记录一下在我学习过程中感觉最重要的东西 消息函数: 在我们创建一个脚本文件的时候,我们首先可以看到两个默认给你写出来的函数。 这两…

昇思25天学习打卡营第21天|应用实践之GAN图像生成

基本介绍 今日要实践的模型是GAN,用于图像生成。使用的MNIST手写数字数据集,共有70000张手写数字图片,包含60000张训练样本和10000张测试样本,数字图片为二进制文件,图片大小为28*28,单通道,图片…

Redislnsight-v2远程连接redis

redis安装内容添加: Linux 下使用Docker安装redis-CSDN博客 点击添加 添加ip地址,密码,端口号 创建完成 点击查看内容:

CAN总线学习

can主要用于汽车、航空等控制行业,是一种串行异步通信方式,因为其相较于其他通信方式抗干扰能力更强,更加稳定。原因在于CAN不像其他通信方式那样,以高电平代表1,以低电平代表0,而是通过电压差来表示逻辑10…

ESP32CAM人工智能教学13

ESP32CAM人工智能教学13 openCV 安装 小智发现openCV是一款非常出色的机器视觉软件,可以配合ESP32Cam的摄像头,开发出许许多多的人工智能应用情境。 下载视频服务驱动库 OpenCV是开源的计算机视觉驱动库,可以应用于机器人的图形处理、机器学…

JDK,JRE,JVM三者之间的关系

Java程序不是直接在操作系统之上运行,而是运行在JVM(java虚拟机)之上。 Java源代码(.java文件)经编译器编译成字节码(.class文件),JVM本质上就是一个负责解释执行Java字节码的程序。…

旷野之间20 - Google 研究的推测 RAG

为什么选择 RAG 新兴能力 直到最近,人们发现 LLM 具有新兴能力,即在与用户或任务交互过程中出现的意外功能。 这些功能的示例包括: 解决问题: LLM 可以利用其语言理解和推理能力,为未经过明确培训的任务提供富有洞…

Unity UGUI Image Maskable

在Unity的UGUI系统中,Maskable属性用于控制UI元素是否受到父级遮罩组件的影响。以下是关于这个属性的详细说明和如何使用: Maskable属性 Maskable属性: 当你在GameObject上添加一个Image组件(比如UI面板或按钮)时&…