点云入门级网络-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
  • 阅读 ( 1035 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Lik-
Lik-

西北工业大学

2 篇文章

作家榜 »

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