tensorflow를 활용하여 여러 데이터 셋을 구성해 보고 여러 모델들을 이용하여
이미지 디텍션을 진행해보도록 하겠습니다
우선 가장 중요한 부분이라 할수 있는 환경설정 입니다
필자는 테스트 서버 속의 miniconda 에서 환경설정을 진행하였으며
cuda 10.0 cuda10.1버전과 기타 라이브러리들은 받아놓은 상태입니다
현제 tf1버전과 tf2버전을 모두 사용해 보며 학습법을 같이 배워 볼 것입니다
tf1버전은 cuda 10.0을 사용하고 tf2 버전은 cuda 10.1버전을 사용하므로 각각 연결시켜 사용 해 줄 것 입니다
python버전은 3.6버전을 사용하며 tensorflow-gpu 1.13 , 2.3버전을 사용합니다
conda create -n tf1.13 python=3.6
conda create -n tf2.3 python=3.6
으로 각각의 버전별 가상환경을 설치 후
우선 기본적인 디렉토리 구조는
tensorflow/
├─ data/
├─ train/
├─ model_zoo/ 구조로 세팅해 두고
tensorflow 디렉토리 안에 https://github.com/tensorflow/models 해당 주소에서 tensorflow/models를
마스터 브랜치와 r1.13.0버전을 내려받았으며
전체 구성은
tensorflow/
├─ data/
├─ train/
├─ model_zoo/
└─ models/
├─ community/
├─ research/
└─ ...
└─ models_r1.13.
├─ community/
├─ research/
└─ ...
해당 디렉토리 구성을 가질 것입니다
우선 tf1의 환경 설정을 우선적으로 해 보겠습니다
conda activate tf1 으로 tf1환경을 활성화 시킨 후
그 후 pip을 이용하여 Cython contextlib2 jupyter matplotlib pillow lxml 라이브러리들을 받아주도록 하겠습니다
conda 환경이지만 pip install명령어를 사용하는 이유는 conda는 pip에 비해 버전별 제약을 많이 받기 때문에
실습 진행시 install 명령은 pip을 사용해 주도록 하겠습니다
그 후
$ git clone https://github.com/cocodataset/cocoapi.git
$ cd cocoapi / PythonAPI
$ make
$ cp -r pycocotools ~/tensorflow/models_r1.13/research/
명령의 사용으로 evaluation coco metric를 설치해 주도록 하겠습니다
$ cd tensorflow/models_r1.13/research/
$ protoc object_detection/protos/*.proto --python_out=.
명령어의 사용으로 프로토버프를 컴파일해서 모델 학습 시에 필요한 라이브러리 빌드하는 과정을 세팅한 후
$ cd tensorflow/models_r1.13/research/
$ export PYTHONPATH=`pwd`:`pwd`/slim 으로 PYTHONPATH를 변경해 주도록 하겠습니다
그후 tf1은 cuda 10.0 tf2는 cuda 10.1버전 각각을 설정해 주겠습니다
$vi ~/.bashrc 명령어로 초기 init 을 설정하는 파일 이 열릴것이며
이 부분에서 export PATH export LD_LIBRARY_PATH 부분을 주석 처리해 준 후
miniconda/envs을 확인하면 각각 tf1,tf2디렉토리가 존재 할 것이며
envs/
├─ tf1/
│ └ etc
│ └ conda
│ ├ activate.d
│ └ deactivate.d
└─ tf2/
└ etc
└ conda
├ activate.d
└ deactivate.d
해당 구조가 되게끔 디렉토리를 추가합니다. etc등 디렉토리가 기존에 존재하지 않는다면 mkdir을 통해 만들어줍니다$echo $PYTHONPATH 를 입력해 pythonpath 를 확인한후
그 후 activate.d 속에 $vi activate.sh 명령어로 활성 파일을 만들어 줄 것이며
#!/bin/bash
ORIGINAL_PATH=$PATH
export PATH=/usr/local/cuda-10.0/bin:$PATH
ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export PYTHONPATH=확인한 pythonpath경로
를 입력해 줍니다 tf1환경 설정시는 PYTHONPATH를 tensorflow/models_1.13/research/slim일 것이며
tf2환경은 tensorflow/models/research/slim고 될 것입니다
deactivate.d속에는 deactivate.sh를 만든 후
export LD_LIBRARY_PATH=$ORIGINAL_LD_LIBRARY_PATH
unset ORIGINAL_LD_LIBRARY_PATH
export PATH=$ORIGINAL_PATH
unset ORIGINAL_PATH
를 입력해 줍니다
같은 방법으로 tf2.3환경에도 작성해 주며 이때 cuda-10.1버전으로 바꾸어 activate.sh/deactivate.sh 파일을
입력해 줍니다
이후 각 tensorflow/models/rearch로 가서 tensorflow-gpu버전을 다시 맞춰주고
설정 이후에는 다른 가상 환경으로 넘어가기 위해서 해당 환경을 deactivate해 주고 넘어가야 되며
그렇지 않으면 충돌이 일어나 사용에 에러가 날 수 있습니다
tf1환경에서 tensorflow/models_r1.13/research/object_detection/builder 속의
model_builder_test.py를 구동시켜 ok결과가 뜬다면 tf1 설정은 완료 된 것입니다
tf2환경으로 들어와
$ cd tensorflow/models/research/
$ protoc object_detection/protos/*.proto --python_out=.
$python -m pip install
로 환경 라이브러리 설치를 진행한 후 tensorflow-gpu 버전을 2.3으로 설정하고
tensorflow/models/research/object_detection/builder 의 model_builder_test.py를 구동시켜
확인하여 ok가 뜬다면 설정이 완료된 것입니다
'tensorflow-machine learning' 카테고리의 다른 글
jetson board 환경설정 및 saved_model ,frozen_graph 생성 (0) | 2021.12.16 |
---|---|
tensorflow 1.13 model traning & nohup (0) | 2021.11.18 |
Tensorflow model training & mAP , Tensorboard (0) | 2021.11.10 |
machine learning pipline config 작성법 (0) | 2021.11.05 |
동영상 frame rate로 자르기 및 annotation (0) | 2021.10.28 |