点云入门级网络-Pointnet如何训练?(Pytorch版)

点云入门级网络-Pointnet如何训练?(Pytorch版) 1.前言 我在github上面找到了pointnet这个项目,但是由于这个项目采用的是Python 2.7, TensorFlow 1.0.1, 我是想找个基于Pytorch框架, Python3...

点云入门级网络-Pointnet如何训练?(Pytorch版)

1.前言

我在github上面找到了pointnet这个项目,但是由于这个项目采用的是Python 2.7, TensorFlow 1.0.1, 我是想找个基于Pytorch框架, Python3.X版本的,所以根据官方提示,我找到了pointnet.pytorch这个版本

2.配置环境

Anaconda+Pycharm

Cuda10.2

Cudnn8.1.0

Python3.7

Cuda和Cudnn版本号需要匹配

3.步骤

3.1在Annaconda中创建一个虚拟环境专门应用于Pointnet.Pytorch项目的运行。

conda create -n <虚拟环境的名字> python=<版本号>
conda create -n pointnet python=3.7
attachments-2023-02-GERPkvd763df1fafd5319.png
attachments-2023-02-VAgqBgrE63df1f832ffd1.png
输入activate pointnet 激活环境

3.2、下载文件

cd进入E:/lyh文件下

attachments-2023-02-p5oLIaQU63df1fd4a4652.png

git clone https://github.com/fxia22/pointnet.pytorch
将github上的项目下载下来,若是网络不好,也可以先在github上下载完后解压直接放在指定的目录下

attachments-2023-02-2Ik2Wa3563df1ff0f2bd8.jpg

3.3、下载环境所需要的库

在anaconda prompt 下输入进入pointnet.pytorch的命令

attachments-2023-02-9MFSLyXW63df2013e5d01.jpg

输入pip install -e .(包括后面的句号小点)

attachments-2023-02-cJnR0e6f63df20242107d.jpg

程序会按照setup.py文件里的安排,把python相应的库下好

attachments-2023-02-K7mCKw4U63df204816c2e.jpg

在进入相应路径下,安装torch库

pip install torch-1.5.0-cp37-cp37m-win_amd64.whl

attachments-2023-02-0sWE5AUq63df20553fb54.jpg

4、数据集

attachments-2023-02-cfdavSG263df20872cf5a.png

5、运行过程及出现的问题

用pycharm打开pointnet.pytorch,在终端cd utils 进入utils,输入

python train_classification.py --dataset=E:\lyh\pointnet.pytorch\shapenetcore_partanno_segmentation_benchmark_v0\ --nepoch=5 --dataset_type=shapenet

问题1

UserWarning: Detected call of `lr_scheduler.step()` before `optimizer.step()`. In PyTorch 1.1.0 and late
r, you should call them in the opposite order: `optimizer.step()` before `lr_scheduler.step()`.  Failure to do this will result in PyTorch skipping the first value of the learning rate schedule.
这是PyTorch1.1.0版本以后会出现的问题,这里需要更改train.classification.py文件里两句话的位置

attachments-2023-02-PSqqqNgg63df20a796b2e.png

问题二

 if __name__ == '__main__':
               freeze_support()
              ...

   The "freeze_support()" line can be omitted if the program
   is not going to be frozen to produce an executable.
将代码块置于if __name__ == '__main__':之下

attachments-2023-02-fmYU4OdM63df20cd92973.png

再次输入对应的命令,即可运行成功!

attachments-2023-02-6m6cCbrQ63df20e1a05cd.png

  • 发表于 2023-02-05 11:22
  • 阅读 ( 284 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Lik-
Lik-

西北工业大学

2 篇文章

作家榜 »

  1. 解弘艺 17 文章
  2. 高曾谊 16 文章
  3. 胡中天 14 文章
  4. 旺仔牛奶opo 14 文章
  5. LH 14 文章
  6. 罗柏荣 13 文章
  7. Panda-admin 13 文章
  8. 林晨 12 文章