rust + python+ libtorch

1: 环境,ubuntu

        1.1 rust : rust-1.79.0   (在官方下载linux版本后,解压文件夹,内部有个install的sh文件,可安装)

安装成功测试:cargo --version

        1.2 python3.10   (直接使用apt install python 下载的)

        1.3 libtorch 最新版本2.3.1  Start Locally | PyTorch

因为后续出现bug:

找不到tch 1.8.0 , 所以重新下载历史版本

历史版本下载: https://download.pytorch.org/libtorch/cpu/

2:  配置

libtorch 环境变量配置: 使用的 GitHub - LaurentMazare/tch-rs: Rust bindings for the C++ api of PyTorch.

 

注意解压文件夹和配置的地址保持一致。

最后修改 ~/.bashrc 后 记得要 source ~/.bashrc

3: 测试

        3.1 创建一新项目 

cargo new demo1

        3.2 进入demo1 直接运行

cargo run

        3.3 运行成功 ,开始关联libtorch测试,进入到src下修改main.rs

use tch::Tensor;

fn main() {
    let t = Tensor::from_slice(&[3, 1, 4, 1, 5]);
    let t = t * 2;
    t.print();
}

        这里主要是为了测试tch有没有成功引进,这个时候在运行 cargo run 会报错 找不到tch

        3.4 修改Cargo.Toml  ,添加tch 依赖,  这个相当于清单文件

4:  本文使用2.0.0的libtorch  tch= 0.15.0 ,tch版本和libtorch版本对比,可以根据下面的来

Previous PyTorch Versions | PyTorch

tch 0.16.0 - Docs.rs

如果版本不对,他会提示:

根据提示去调整版本

5: bugs

解决:

rm ~/.cargo/.package-cache

卡住在99,运行的时候使用 , 如果你是2核,下面写1,如果是4核,最高可以写3,防止cpu拉满导致编译一直卡住,这里会需要很长时间。。我用了2个多小时最终才完成编译

CARGO_BUILD_JOBS=2 cargo build

6:  rust和python 互调

        6.1 python 里使用rust

按照GitHub - PyO3/pyo3: Rust bindings for the Python interpreter 配置maturin

注意事项,因为当前环境装的python3

最后通过指令就可以访问你在rust文件里写的方法

6.2 在rust内访问python文件 Executing existing Python code - PyO3 user guide

按照官方说明填写python文件,

打印结果:

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 19:56:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 19:56:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 19:56:04       58 阅读
  4. Python语言-面向对象

    2024-07-17 19:56:04       69 阅读

热门阅读

  1. XML详解

    2024-07-17 19:56:04       17 阅读
  2. Vue进阶之Vue无代码可视化项目(六)

    2024-07-17 19:56:04       19 阅读
  3. 209.长度最小的子数组 数组 双指针 滑动窗口

    2024-07-17 19:56:04       18 阅读
  4. notes for datawhale 2th summer camp NLP task2

    2024-07-17 19:56:04       21 阅读
  5. linux学习笔记整理: 关于linux系统介绍 2024/7/16;

    2024-07-17 19:56:04       20 阅读
  6. 单例模式-C#

    2024-07-17 19:56:04       17 阅读
  7. 常用的系统层安全机制

    2024-07-17 19:56:04       21 阅读
  8. 什么是智能家居?

    2024-07-17 19:56:04       18 阅读
  9. C++的关键字const

    2024-07-17 19:56:04       21 阅读
  10. 服务端正常启动了,但是客户端请求不到

    2024-07-17 19:56:04       22 阅读