pointnet++学习笔记

匿名 (未验证) 提交于 2019-12-03 00:31:02


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

同上

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

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


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!