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 코드가 만들어졌는데 이런 코드의 이식성이 매우 높다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
점 클라우드 딥러닝 시리즈 3 - PointNet/PointNet++ 코드 비교글은 소개하지 않겠습니다. 여기서는 주로 코드를 말합니다. PointNet++는 PointNet의 업그레이드 버전으로 주로 국부 정보에 대한 감지 능력을 증가시켰다.코드에 나타나면 변화가 비교적 많다. 우리는 분류를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.