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

pytorch拓展——Ubuntu vscode配置pytorch C++拓展环境

引言:pytorch的官方教程中

  • 例子1是用numpy+Funciton手动写的一个前向传播和反向传播
  • 例子2是一个有需要优化参数的例子
  • 例子3是用c++写的拓展,1.0之前是用c写的拓展
  • 这里记录用vscode配置c++,然后导入torch的TH.h头文件的过程

ubuntu配置vscode支持c++调试

具体参考网上的教程: Ubuntu16.04下配置VScode的C/C++开发环境

注意:

tasks.json中需要加上“-std=c++11”这个参数表示支持c++11标准

重点:将pytorch的头文件TH.h等加入到C++的编译路径

1. 软链接的方式

  • 找到c++编译器的路径,本人的在/usr/include/c++/9/, 可以通过一下命令找到位置:
locate iostream
  • 找到pytorch的拓展TH.h所在的位置,命令:locate TH.h 或者find -name TH.h,如下是本人的:
/home/yunjie/.local/lib/python3.8/site-packages/torch/include/ATen/core/UnsafeFromTH.h
/home/yunjie/.local/lib/python3.8/site-packages/torch/include/TH/TH.h
/home/yunjie/anaconda3/lib/python3.10/site-packages/torch/include/ATen/core/UnsafeFromTH.h
/home/yunjie/anaconda3/pkgs/pytorch-1.12.1-cpu_py310hb1f1ab4_1/lib/python3.10/site-packages/torch/include/ATen/core/UnsafeFromTH.h
/usr/share/doc/info/html/INFOPATH.html

这里因为有多个conda环境所以有多个TH.h

  • 建立软链接,
sudo ln -s /home/yunjie/.local/lib/python3.8/site-packages/torch/include/ATen /usr/include/c++/9/    # 可能要sudo,不加可能权限不够

2. 在.bashrc中添加环境变量

  • 在~/.bashrc中为c++添加环境变量,具体语句如下:
export CPLUS_INCLUDE_PATH=/home/yunjie/.local/lib/python3.8/site-packages/torch/include/:$CPLUS_INCLUDE_PATH     # 改为自己的位置就行

添加完成之后,好像一定要重启,不然无法导入。

测试

直接上代码,如果编译能通过则没有问题。

#include <TH/TH.h>      // pytorch的头文件
#include <math.h>
#include <iostream>

int main(int argc, char const *argv[])
{
    std::cout << "chenjun" << std::endl;
    return 0;
}

以上代码只是在普通的c++代码中,导入了pytorch的头文件。


http://www.kler.cn/a/6965.html

相关文章:

  • 在 Webpack 中使用 预加载(Preloading) 技术可以通过动态导入(import())以及指定预加载的方式来进行优化
  • Flink 应用
  • 【SH】Xiaomi9刷Windows10系统研发记录 、手机刷Windows系统教程、小米9重装win10系统
  • HTML实战课堂之启动动画弹窗
  • Chatper 4: Implementing a GPT model from Scratch To Generate Text
  • HTML5 加载动画(Loading Animation)
  • docker-compose:Dockerfile参数以及说明
  • 【独家】华为OD机试 - 机智的外卖员(C 语言解题)动态规划
  • 前端已死?金三银四?你收到offer了吗?
  • 基于dbt的机器学习:流畅的过程衔接
  • 计算机网络基础
  • java servlet 期刊在线投稿系统jsp编程sqlserver数据库mvc模式开发计算机网页设计
  • js 作用域
  • 【JAVA程序设计】(C00125)基于Springboot的人事管理系统
  • 电流互感器校验台TI5300交直流电流传感器检测装置
  • ChatGPT扩展系列之ChatGPT for Google
  • 基于粒子群算法的含风光燃储微网优化调度
  • 使用js实现任意元素均可全屏显示的插件,提供vue自定义指令,开箱即用
  • 2023.4.2 卷积到底是个啥?
  • 脂肪酸脂质Myristic acid PEG NHS,Myristic-acid PEG NHS ester,肉豆蔻酸PEG活性酯,具有优异疏水性
  • 项目 TO 的自我修养
  • Centos8中安装Docker
  • Linux SSH失效的几种情况以及排查方法
  • 在线直播源码系统架构设计
  • 战略应对:如何利用TOOM舆情监控预测市场趋势,抢占商机?
  • CMake入门教程【基础篇】2.aux_source_directory添加源文件