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

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

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

相关文章

C++客户端Qt开发——信号和槽

三、信号和槽 1.信号和槽概述 在Qt中,用户和控件的每次交互过程称为一个事件。比如"用户点击按钮”是一个事件,"用户关闭窗口”也是一个事件。每个事件都会发出一个信号,例如用户点击按钮会发出"按钮被点击"的信号&…

在互联网供应链系统可能是永远不会过时的系统

一、前言 在互联网在到人工智能,从基本的门户网站,社交网站,到移动互联网,视频网站,再到现在比较火爆短视频直播和人工智能AI,大模型。互联网的迭代,出现了无数的系统。但是有些系统一直久经不…

剪画小程序:做自媒体要做哪些准备!

在这个数字化的时代,自媒体成为了许多人展现自我、实现价值的舞台。如果你是一个自媒体小白,怀揣着梦想和热情准备踏上这条充满挑战与机遇的道路,那么在出发之前,有一些关键的准备工作可不能忽视。 一、明确自身定位 首先要思考的…

婚恋交友语音交友小程序APP系统开发

在数字化时代,婚恋交友的方式也日益多样化。传统的相亲、朋友介绍等方式已经无法满足现代人快节毒的生活需求,更多的人开始选择通过线上平台寻找自己的另-婚恋交友语音交友小程序APP应运而生,为单身男女提供了个便捷、高效的交友平台。本文将…

指针!!C语言(第一篇)

指针1 指针变量和地址1.取地址操作符(&)2.指针变量和解引用操作符(*) 指针变量的大小和类型指针的运算特殊指针1.viod*指针2.const修饰指针3.野指针 assert断言指针的使用和传址调用1.strlen的模拟实现2.传值调用和传址调用 指针变量和地址 在认识指针之前,我们…

Iceberg概念和特性

1. 快照 Iceberg会随着时间的推进,跟踪表生命周期中的所有数据集变化,并使用快照(Snapshots)来表示每一次变化后的数据集合,每一次数据操作的事务提交均会产生一个快照,并将其记录在元数据文件(Metadata)中。 基于快照的概念,Iceberg有以下特性: 事务性:写入快照成…

26.6 Django模型层

1. 模型层 1.1 模型层的作用 模型层(Model Layer)是MVC或MTV架构中的一个核心组成部分, 它主要负责定义和管理应用程序中的数据结构及其行为. 具体职责包括: * 1. 封装数据: 模型层封装了应用程序所需的所有数据, 这些数据以结构化的形式存在, 如数据库表, 对象等. * 2. 数据…

昇思25天学习打卡营第7天 | MindNLP ChatGLM-6B StreamChat

本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 1 环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14,如需更换mindspore版本,可更改下面mindspore的版本号 !pip uninstall mindspore -y !pip install -i https://pypi.mi…

前端:Vue学习-1

前端:Vue学习-1 1. 指令1. 指令修饰符2. v-bind对样式控制的增强3. v-model应用于其他表单元素 2. 计算属性3. watch侦听器(监视器) 1. 指令 就是带有v-前缀的特殊属性,不同属性对应不同的功能 v-html:动态设置页面的html标签内容…

超时导致SparkContext构造失败的问题探究

文章目录 1.前言2. 基于事故现场对问题进行分析2.1 日志分析2.2 单独测试Topology代码试图重现问题 3. 源码解析3.1 Client模式和Cluster模式下客户端的提交和启动过程客户端提交时在两种模式下的处理逻辑ApplicationMaster启动时在两种模式下的处理逻辑 3.2 两种模式下的下层角…

08-8.4.1 简单选择排序+8.4.2 堆排序

👋 Hi, I’m Beast Cheng 👀 I’m interested in photography, hiking, landscape… 🌱 I’m currently learning python, javascript, kotlin… 📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

Adminer-CVE-2021-21311

在其4.0.0到4.7.9版本之间,连接 ElasticSearch 和 ClickHouse 数据库时存在一处服务端请求伪造漏洞(SSRF)。 VPS开启HTTP服务 VPS 开启HTTP 再同时跑POC 确保能访问poc里的链接文件 第一是目标地址 第二个是跳转地址 第三个是监听地址 如果…

为什么大学讲授 C 语言比讲授 C++ 的更多?

大学更倾向于讲授C语言而不是C的几个原因可能包括。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学,敲个22就可以免费获得。 基础性质:…

【Linux】进程程序替换 + 模拟实现简易shell

前言 上一节我们介绍了 **进程终止**和 **进程等待**等一系列问题,并做了相应的验证,本章将继续对进程控制进行介绍,重点学习进程程序替换,并进行相应验证,在此基础上,自己模拟实现一个shell,该…

Redis分布式锁-Redisson可重入锁原理的个人见解。

记录Redisson可重入锁的个人见解。 文章目录 前言一、什么叫做锁的重入?二、Redisson可重入锁原理 前言 ⁣⁣⁣⁣ ⁣⁣⁣⁣ 之前在写项目的时候,注意到Redisson可重入锁的一个问题,随即在网上搜索其对应的资料,下面就记录一下个…

昇思25天学习打卡营第14天 | ShuffleNet图像分类

昇思25天学习打卡营第14天 | ShuffleNet图像分类 文章目录 昇思25天学习打卡营第14天 | ShuffleNet图像分类ShuffleNetPointwise Group ConvolutionChannel ShuffleShuffleNet模块网络构建 模型训练与评估数据集训练模型评估模型预测 总结打卡 ShuffleNet ShuffleNetV1是旷世科…

鸿蒙实训笔记

第一天 #初始化一个新的NPM项目(根据提示操作) npm init #安装TSC、TSLint和NodeJS的类型声明 npm install -s typescript tslint types/node 在根目录中新建一个名为tsconfig.json的文件,然后在代码编辑器中打开,写入下述内容: {"co…

MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制

🎯要点 🎯概率论和图论数学形式和图结构 | 🎯数学形式、图结构和代码验证贝叶斯分类器算法:🖊多类型:朴素贝叶斯,求和朴素贝叶斯、高斯朴素贝叶斯、树增强贝叶斯、贝叶斯网络增强贝叶斯和半朴素…

网络层重点协议—IP协议

在复杂的网络环境中确定一个合适的路径 协议头格式如下: 4位版本号(version) 指定协议的版本(IPV4-4,IPV6-6) 4位首部长度(header length) IP头部的长度是多少个32bit,也就是length*4的字节数。4bit表示最大的数字是15&#x…

【密码学】密码学数学基础:群的定义

一、群的定义 在密码学中,群(Group)的概念是从抽象代数借用来的,它是一种数学结构,通常用于描述具有特定性质的运算集合。 群的定义 群定义中的几个关键要素: 集合:首先,群是由一系…