源码: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文件家下面
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、开始训练遇到的第一个问题
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__' 下面。
训练后的结果:
小白第一次跑代码,记录一下自己跑代码的过程,有不对的地方请批评指正,勿喷勿喷。