README.md 3.77 KB
Newer Older
fengzch-das's avatar
fengzch-das committed
1
# <div align="center"><strong>Pytorch3d</strong></div>
facebook-github-bot's avatar
facebook-github-bot committed
2

fengzch-das's avatar
fengzch-das committed
3
## 1 简介
facebook-github-bot's avatar
facebook-github-bot committed
4

fengzch-das's avatar
fengzch-das committed
5
6
PyTorch3D 为基于 PyTorch 的 3D 计算机视觉研究提供了高效、可复用的组件。
主要功能包括:
facebook-github-bot's avatar
facebook-github-bot committed
7

fengzch-das's avatar
fengzch-das committed
8
9
10
* 用于存储和操作三角网格的数据结构
* 高效的三角网格操作(投影变换、图卷积、采样、损失函数等)
* 可微分网格渲染器
facebook-github-bot's avatar
facebook-github-bot committed
11

fengzch-das's avatar
fengzch-das committed
12
PyTorch3D 专为与深度学习方法无缝集成而设计,可用于预测和处理 3D 数据。因此,PyTorch3D 的所有算子均具备以下特性:
facebook-github-bot's avatar
facebook-github-bot committed
13

fengzch-das's avatar
fengzch-das committed
14
15
16
17
* 基于 PyTorch 张量实现
* 支持异构数据的批量处理
* 可微分计算
* 支持 GPU 加速
facebook-github-bot's avatar
facebook-github-bot committed
18

fengzch-das's avatar
fengzch-das committed
19
## 2 安装
facebook-github-bot's avatar
facebook-github-bot committed
20

fengzch-das's avatar
fengzch-das committed
21
组件支持组合
facebook-github-bot's avatar
facebook-github-bot committed
22

fengzch-das's avatar
fengzch-das committed
23
| PyTorch版本 | fastpt版本 | pytorch3d 版本     | DTK版本  | Python版本      | 推荐编译方式 |
fengzch-das's avatar
fengzch-das committed
24
| ----------- | ---------- | ------------- | -------- | --------------- | ------------ |
fengzch-das's avatar
fengzch-das committed
25
26
| 2.5.1       | 2.1.0      | V0.7.8-fastpt | >= 25.04 | 3.8、3.10、3.11 | fastpt不转码 |
| 2.4.1       | 2.0.1      | V0.7.8-fastpt | >= 25.04 | 3.8、3.10、3.11 | fastpt不转码 |
facebook-github-bot's avatar
facebook-github-bot committed
27

fengzch-das's avatar
fengzch-das committed
28
+ pytorch 版本大于 2.4.1 && dtk 版本大于 25.04 推荐使用 fastpt 不转码编译。
29

fengzch-das's avatar
fengzch-das committed
30
### 2.1 使用pip方式安装
facebook-github-bot's avatar
facebook-github-bot committed
31

fengzch-das's avatar
fengzch-das committed
32
pytorch3d whl 包下载目录:[光和开发者社区](https://download.sourcefind.cn:65024/4/main),选择对应的 pytorch 版本和 python 版本下载对应 pytorch3d 的 whl 包: 
facebook-github-bot's avatar
facebook-github-bot committed
33

fengzch-das's avatar
fengzch-das committed
34
35
36
37
38
39
```shell
pip install torch* # 下载torch的whl包
pip install fastpt* --no-deps # 下载fastpt的whl包
source  /usr/local/bin/fastpt -E
pip install pytorch3d* # # 下载的 pytorch3d-fastpt 的whl包
```
40

fengzch-das's avatar
fengzch-das committed
41
### 2.2 使用源码编译方式安装
facebook-github-bot's avatar
facebook-github-bot committed
42

fengzch-das's avatar
fengzch-das committed
43
#### 2.2.1 编译环境准备
facebook-github-bot's avatar
facebook-github-bot committed
44

fengzch-das's avatar
fengzch-das committed
45
提供基于 fastpt 不转码编译:
Nikhila Ravi's avatar
Nikhila Ravi committed
46

fengzch-das's avatar
fengzch-das committed
47
48
1. 基于光源 pytorch 基础镜像环境:镜像下载地址:[光合开发者社区](https://sourcefind.cn/#/image/dcu/pytorch),根据 pytorch、python、dtk 及系统下载对应的镜像版本。
2. 基于现有 python 环境:安装 pytorch,fastpt whl 包下载目录:[光合开发者社区](https://sourcefind.cn/#/image/dcu/pytorch),根据 python、dtk 版本,下载对应 pytorch 的 whl 包。安装命令如下:
Christoph Lassner's avatar
Christoph Lassner committed
49

fengzch-das's avatar
fengzch-das committed
50
51
52
53
```shell
pip install torch* # 下载torch的whl包
pip install fastpt* --no-deps # 下载fastpt的whl包, 安装顺序,先安装torch,后安装fastpt
pip install setuptools==59.5.0 wheel pytest
Christoph Lassner's avatar
Christoph Lassner committed
54
```
55

fengzch-das's avatar
fengzch-das committed
56
#### 2.2.2 源码编译安装
Nikhila Ravi's avatar
Nikhila Ravi committed
57

fengzch-das's avatar
fengzch-das committed
58
- 代码下载
Nikhila Ravi's avatar
Nikhila Ravi committed
59

fengzch-das's avatar
fengzch-das committed
60
61
62
```shell
git clone http://developer.sourcefind.cn/codes/OpenDAS/pytorch3d.git # 根据编译需要切换分支
```
63

fengzch-das's avatar
fengzch-das committed
64
65
- 提供2种源码编译方式(进入 pytorch3d 目录):
  - 源码编译安装:
66

fengzch-das's avatar
fengzch-das committed
67
68
    ```bash
    source /usr/local/bin/fastpt -C
69

fengzch-das's avatar
fengzch-das committed
70
    export FORCE_CUDA=1 # 编译 cuda 版本
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
71

fengzch-das's avatar
fengzch-das committed
72
73
74
75
    python setup.py develop
    python setup.py install
    ```
  - whl 包构建安装:
76

fengzch-das's avatar
fengzch-das committed
77
78
79
80
81
82
    ```bash
    source /usr/local/bin/fastpt -C
    export FORCE_CUDA=1 # 编译 cuda 版本
    python setup.py bdist_wheel # 该指令用于编译 whl 包
    pip install dist/pytorch3d-0.7.8-cp310-cp310-linux_x86_64.whl
    ```
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
83

fengzch-das's avatar
fengzch-das committed
84
#### 2.2.3 注意事项
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
85

fengzch-das's avatar
fengzch-das committed
86
87
+ ROCM_PATH 为 dtk 的路径,默认为 /opt/dtk;
+ 在 pytorch2.5.1 环境下编译需要支持 c++17 语法,打开setup.py文件,把文件中的 -std=c++14 修改为 -std=c++17。
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
88

fengzch-das's avatar
fengzch-das committed
89
90
91
92
## 3 验证
- 执行下面的命令获取版本号:
```bash
source /usr/local/bin/fastpt -E
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
93

fengzch-das's avatar
fengzch-das committed
94
95
96
97
98
python
>>> import pytorch3d
>>> pytorch3d.__version__
'0.7.8'
```
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
99

fengzch-das's avatar
fengzch-das committed
100
- 执行下面的命令测试组件:
Christoph Lassner's avatar
Christoph Lassner committed
101

fengzch-das's avatar
fengzch-das committed
102
103
104
105
106
107
108
109
```bash
pip install omegaconf
pip install tabulate
pip install pyopengl
pip install pycuda
pip install visdom
pip install lpips
pip install plotly
Nikhila Ravi's avatar
Nikhila Ravi committed
110

fengzch-das's avatar
fengzch-das committed
111
source /usr/local/bin/fastpt -E
112

fengzch-das's avatar
fengzch-das committed
113
114
115
export PYTORCH3D_NO_TEST_OPENGL=1 # skip OpenGL 相关测试用例
pytest -vs ./tests
```
116

fengzch-das's avatar
fengzch-das committed
117
## 4 Known Issue
Nikhila Ravi's avatar
Nikhila Ravi committed
118

fengzch-das's avatar
fengzch-das committed
119
-
Nikhila Ravi's avatar
Nikhila Ravi committed
120

fengzch-das's avatar
fengzch-das committed
121
## 5 参考资料
Nikhila Ravi's avatar
Nikhila Ravi committed
122

fengzch-das's avatar
fengzch-das committed
123
124
- [README_ORIGIN](README_ORIGIN.md)
- [https://github.com/facebookresearch/pytorch3d.git](https://github.com/facebookresearch/pytorch3d.git)