运行pointnet及遇到问题

 

源码:pointnet的pytorch实现版本

实验环境:win10专业版+anaconda+python3.6+pytorch1.6.0+cuda10.1

1、下载源码

2、下载数据有Modelnet40和Shapenet两个数据集,本次实验用的shapenet40数据。shapenet(点击可直接下载)

按照readme文件进行环境配置

notice:在执行pip -e .时(e后面有一个空格和点,一定要复制到点,否则不能运行成功)

因为是window环境,没有执行下载数据科可视化的这一步,数据是手动下载的。

3、因为菜,不太能全部看懂代码,就先炼丹,就直接开始跑代码了

4、用anaconda Prompt将路径切换到你的源码的utils文件家下面

运行pointnet及遇到问题_第1张图片

5、开始训练

readme里面的指导格式

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

--dataset=后面为你的数据路径

--nepoch=5,你的epoch的次数,我设置的5

--dataset_type=shapenet,设置数据的类型,我的是shapenet,若为modelnet40,就设置为--dataset_type=modelnet40

6、开始训练遇到的第一个问题

运行pointnet及遇到问题_第2张图片

        An attempt has been made to start a new process before the current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your child processes and you have forgotten to use the proper idiom in the main module:

            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.

解决方法:参考文章https://blog.csdn.net/xiemanr/article/details/71700531

我将train_classification.py文件将除开import部分中的全部放在了if __name__ == '__main__' 下面。

运行pointnet及遇到问题_第3张图片

训练后的结果:

运行pointnet及遇到问题_第4张图片

小白第一次跑代码,记录一下自己跑代码的过程,有不对的地方请批评指正,勿喷勿喷。

 

 

 

你可能感兴趣的:(pytorch,python)