首页 > Windows开发 > 详细

基于Pytorch训练Pointnet+Windows10

时间:2021-08-14 23:41:42      阅读:30      评论:0      收藏:0      [点我收藏+]

1、前言

最近实验室购入3D的摄像机,想要应用于图像识别,钢哥让我找一找相应的3D识别项目。

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

我其实不太懂这个深度学习这一块,之前有过利用YoloV3的经历也是在网上搜索相应的教程后,经过相当时间的挣扎、痛苦,然后才成功运行的,我搜索了pointnet相关的教程,却是没有找到多少在Windows系统下运行的。多是复现github上的项目,在Linux或是 Ubuntu上运行。奈何我本人对这两种系统一点也不了解,所以在window10成功运行pointnet.pytorch版本后,做一个记录.

2、配置环境

Anaconda+Pycharm

Cuda10.2

Cudnn8.1.0

Python3.7

Cuda和Cudnn版本号需要匹配

3、准备工作

3.1、创建虚拟环境

打开Annaconda Promt,创建一个虚拟环境专门应用于Pointnet.Pytorch项目的运行。

conda create -n <虚拟环境的名字> python=<版本号>
conda create -n pointnet python=3.7

技术分享图片

成功创建

技术分享图片

输入activate pointnet 激活环境

3.2、下载文件

cd进入E:/lyh文件下

技术分享图片

输入

git clone https://github.com/fxia22/pointnet.pytorch

将github上的项目下载下来,若是网络不好,也可以先在github上下载完后解压直接放在指定的目录下

技术分享图片

3.3、下载环境所需要的库

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

技术分享图片

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

pip install -e .

技术分享图片

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

技术分享图片

这里在下载torch的时候会出现问题比如ReadtimeOut的超时问题(这个问题我是挂梯子解决的)。

下载完以后由于怕torch版本过高,所以我卸载程序自动下载的torch1.9版本,安装了一个torch1.5.0的版本。

可以选择离线下载torch库,在这个网址中查询与cuda、cudnn、python对应的版本,像我的话由于怕pytorch版本过高,GitHub这个项目原本就只是用了torch1.0.1的版本,所以我选择了python3.7,cuda10.2所能配置的最低版本

torch-1.5.0-cp37-cp37m-win_amd64.whl

技术分享图片

在进入相应路径下,

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

安装torch库

技术分享图片

4、数据集

技术分享图片

github文档中 build.sh下载的是可视化的过程,这个暂时我还不知道怎么处理

download.sh的话是下载数据集,可以直接根据

https://shapenet.cs.stanford.edu/ericyi/shapenetcore_partanno_segmentation_benchmark_v0.zip

进行下载

下载完后解压在pointnet.pytorch文件夹下即可.

技术分享图片

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

5.2、问题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文件里两句话的位置

技术分享图片

5.3、问题二

 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__‘:之下

技术分享图片

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

技术分享图片

技术分享图片

6、参考

Detected call of lr_scheduler.step() before optimizer.step()

PyTorch:The "freeze_support()" line can be omitted if the program is not going to be frozen

python进程池multiprocessing.Pool运行错误:The "freeze_support()" line can be omitted if the program is not g

基于Pytorch训练Pointnet+Windows10

原文:https://www.cnblogs.com/Nadir-Echo/p/15142141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!