pointnet++学习笔记1

    最近在看论文,想要使用卷积神经网络对于蛋白质结构数据进行处理。发现使用pointnet++对于三维数据的处理是比较新的方法。那么我就开始对pointnet++的源代码徐学习并且做学习笔记。以便于更好的理解使用深度学习的方法对于三维物体的研究思路。

     pointnet++对于对象物体的研究主要分为两种方法,第一种是整体分类的方法。第二是对于三维物体的分割。那么由于我们所需要的正是要对于三维物体的局部进行研究,那么这样使用分割的方法就更加的有效。

    对于代码的分析:(代码下载于github-pointnet2)

import argparse
import math
from datetime import datetime
import h5py
import numpy as np
import tensorflow as tf
import socket
import importlib
import os
import sys
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
ROOT_DIR = os.path.dirname(BASE_DIR)
sys.path.append(BASE_DIR)
sys.path.append(os.path.join(ROOT_DIR, 'models'))
sys.path.append(os.path.join(ROOT_DIR, 'utils'))
import provider
import tf_util
import part_dataset_all_normal

首先看part_sag中的train_one_hot.py代码的模块信息。

import argparse

在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包使得这一工作变得简单而规范。通过命令调用代码的时候所输入的参数的设置模块(自我理解)。

import h5py

h5py文件是存放两类对象的容器,数据集(dataset)和组(group),dataset类似数组类的数据集合,和numpy的数组差不多。group是像文件夹一样的容器,它好比python中的字典,有键(key)和值(value)。group中可以存放dataset或者其他的group。”键”就是组成员的名称,”值”就是组成员对象本身(组或者数据集)。可以非常方便的存放训练数据。

import socket

socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)

socket和file的区别:

file模块是针对某个指定文件进行【打开】【读写】【关闭】

socket模块是针对 服务器端 和 客户端Socket 进行【打开】【读写】【关闭】

代码中只是用了HOSTNAME = socket.gethostname()获得了一个主机的IP就没有了其他操作,故不进行深层理解。

import importlib

在程序运行的过程中,根据变量或者配置动态的决定导入哪个模块。使用这个模块的好处是,在运行的过程中选择需要引入的模块是灵活的。

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
ROOT_DIR = os.path.dirname(BASE_DIR)
sys.path.append(BASE_DIR)
sys.path.append(os.path.join(ROOT_DIR, 'models'))
sys.path.append(os.path.join(ROOT_DIR, 'utils'))

获取文件所在目录的完整路径。那么BSAE_DIR的值就是文件所在的完整路径。

如我们的文件路径为:C:\Users\Administrator\Desktop\pointnet2-master\part_seg\train_one_hot.py

那么BASE_DIR的结果应为:C:\Users\Administrator\Desktop\pointnet2-master\part_seg\

而ROOT_DIR的结果应为:C:\Users\Administrator\Desktop\pointnet2-master\

sys.path.append(BASE_DIR)
sys.path.append(os.path.join(ROOT_DIR, 'models'))
sys.path.append(os.path.join(ROOT_DIR, 'utils'))

这三个添加路径的操作将当前文件路径与models和utils文件路径都添加了进来。这样方面后面模块的导入。

import provider

没有找到相关的文档。标注

import tf_util

代码中没有用到该模块

import part_dataset_all_normal

同上

最后三个模块需要有进一步的理解将更新。

模块部分就学习到这里,下一篇将学习程序的内容。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值