Google Colab简介 Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究。这款工具现在可以免费使用,但是不是永久免费暂时还不确定。Google Colab最大的好处是给广大的AI开发者提供了免费的GPU使用!GPU型号是Tesla K80!你可以在上面轻松地跑例如:Keras、Tensorflow、Pytorch等框架。
新手指引:https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d
中文教程:https://www.jianshu.com/p/000d2a9d36a0常见问题:https://research.google.com/colaboratory/faq.html PointNet++简介 PointNet++是PointNet的升级版,PointNet不能很好的捕捉由度量空间引入的局部结构,也就限制了它识别细粒度类别的能力以及对复杂场景的泛化能力,因此提出一个层级的神经网络递归地应用在嵌套划分的输入点云集。通过探索度量空间的距离,PointNet++的网络结构随着上下文尺度的增加可以学习到局部特征。更深的观察发现,点云集的密度一般都是不均匀的,但PointNet是在均匀采样密度的点集上训练的,这会造成很大的性能下降,PointNet++的点集学习方法可以适应性的组合不同尺度的特征。 该算法已经在GitHub上开源。 使用步骤 1. 挂载网盘,下载源码 挂载网盘方法可以见中文教程。 挂载网盘后,从github下载源码:
!mkdir pointnet2
!git clone https://github.com/charlesq34/pointnet2.git
2. 修改程序 如果使用的是Python3.6,程序中的print需要全部加括号,代码中出现 xrange 更改为range。 3. 编译.so 文件 在tf_ops/3d_interpolation tf_ops/grouping tf_ops/sampling 文件夹下分别有一个.sh文件和.cpp .cu文件。 .cpp文件是C++代码,.cu是CUDA代码,神经网络部分计算是由C++和显卡完成提高运行速度。.sh文件是编译.cpp和.cu文件的脚本。 写这篇文章时Colab提供的是CUDA-10.0 Python3.6 TensorFlow1.13.1 修改.sh文件使得符合使用环境,以tf_ops/grouping/tf_grouping_compile.sh为例: github的readme上写出了修改方法,也可以像这样直接修改环境。TF1.4以上都使用TF1.4的配置,注释掉原来的TF1.2配置。 github的issue里有人提到高版本使用时最后的 -D_GLIBCXX_USE_CX11_ABI=0 需要注释掉,我并没有遇到这个问题。 进入运行脚本,生成.so文件: os.chdir("/content/drive/Colab/pointnet/pointnet2/tf_ops/grouping")
!bash tf_grouping_compile.sh
其他两个文件类似。 注意:训练时提示NotFoundError,但是生成的.so文件确实存在,需要注意是否正确编译,加载时是加载函数,如果编译错误python无法找到正确函数也会报错。编译会提示Warning,没有处理返回值,除此之外不应该有别的错误。 4. 训练 之后就可以训练了。 os.chdir("/content/drive/Colab/pointnet/pointnet2")
!python train.py
|