PointCNN 코드 조직 구조 분석 - 분할을 예로 들다

PointCNN을 처음 사용하는 학생들은 코드 구조를 잘 이해하지 못하기 쉽다.
저희가 README에서.보기 시작하다.
분할 작업의 Semantic3D 데이터를 예로 들면 다음과 같습니다.
 
 

 cd data_conversions#  
bash download_semantic3d.sh  bash un7z_semantic3d.sh  mkdir ../../데이터/semantic3d/val #에 검증 집합을 만들어 네 개의 데이터를 넣었다. 
mv ../../data/semantic3d/train/bildstein_station3_xyz_intensity_rgb.* ../../data/semantic3d/train/domfountain_station2_xyz_intensity_rgb.* ../../data/semantic3d/train/sg27_station4_intensity_rgb.* ../../data/semantic3d/train/untermaederbrunnen_station3_xyz_intensity_rgb.* ../../data/semantic3d/val  
cd split_data  python3 semantic3d_split.py  
cd ..  python3 prepare_multiChannel_seg_data.py -f ../../data/semantic3d/out_part -c 6  
cd ../pointcnn_seg  ./train_val_semantic3d.sh -g 0 -x semantic3d_x8_2048_k16
이것은 몇몇 열 linux의 작업입니다.
일단'데이터 '들어가겠습니다.conversions' 폴더;
그리고'download '를 실행합니다.semantic3d.sh'스크립트로 데이터 집합을 불러오기;
이어서 un7z 실행semantic3d.sh'압축 풀기;
다음에 'mkdir' 명령으로 이 폴더에 새 하위 폴더를 만들어서 검증 집합을 저장합니다.
다음 줄'mv'는 이 몇 개의 물건을 방금 만든 폴더로 이동하는 것입니다.
그리고'split '데이터'폴더,
스크립트 실행'semantic3dsplit.py'는 원시 데이터에 대해 구분한다. 원시 데이터가 너무 크기 때문에 우리는 먼저 그것들을 작은 덩어리로 잘라 처리한다.
그리고'데이터 'conversions' 폴더;
스크립트를 실행하여 방금 분리된 데이터를 처리할 수 있는 형식으로 변환하기;
'pointcnn '입장seg'폴더;
스크립트 train 실행val_semantic3d.sh, 두 개의 매개 변수를 설정했는데 각각'-g 0 -x semantic3dx8_2048_k16’.
훈련을 시작했습니다.
 
 
여기까지train을 볼 필요가 있습니다val_semantic3d.쉬가 뭘 했어?안에 47줄 코드가 있지만 우리는 마지막 줄만 주목하면 된다.
 
 

CUDA_VISIBLE_DEVICES=$gpu python3 ../train_val_seg.py -t ../../data/semantic3d/out_part/train_data_files.txt -v ../../data/semantic3d/out_part/val_data_files.txt -s ../../models/seg -m pointcnn_seg -x $setting > ../../models/seg/pointcnn_seg_$setting.txt 2>&1 &
이 코드는 시스템으로 하여금 이렇게 조작하게 한다.
GPU 사용-python3으로 코드 실행-상위 폴더로 되돌아오기-trainval_seg.py 코드와 그에 대해 몇 개의 매개 변수를 설정했습니다.각각
'-t', 네트워크에 훈련 데이터의ground truth 텍스트가 무엇인지 알려줍니다.
'-v', 데이터를 검증하는ground truth 텍스트입니다.
'-s', check points and summary 경로와 폴더를 저장합니다.
'-m', 어떤 모형을 사용합니까?
'-x', 사용할 설정입니다.
이 말은 훈련 네트워크에 필요한 모든 것을 코드에 알려주는 작용이 매우 강하다고 할 수 있다.
 
만약 다른 분할 작업의sh 스크립트를 보았다면, 사실은 이sh 구조와 똑같을 것이다.그리고 서로 다른 분할 임무에 대해 훈련을 진행하는 부분(모형을 어떻게 취하고 데이터를 취하며 shuffle 등 조작)을 모두 공공적인trainval_seg.py 코드가 만들어졌는데 이런 코드의 이식성이 매우 높다.

좋은 웹페이지 즐겨찾기