728x90

AI | ML 50

Transfer Learning 가이드

많은 사람들이 딥러닝을 처음 접하고 이용할 때, 수많은 논문들의 github 코드를 가져와서 사용하곤 합니다. 이 때, Transfer Learning이라 하여 기존의 학습된 가중치를 이용해 본인이 적용하고자 하는 업무에 조금 변형하여 사용합니다. fine-tuning, Transfer Learning, pre-trained model 등 다양한 이름들이 존재하는데, 언제 어떻게 사용하는게 좋을까요? 스탠퍼드 대학교에서 가르치는 컴퓨터비전 과목에서는 다음과 같이 적혀 있습니다. 정리해서 말하면 Transfer Learning에는 3가지 시나리오가 있는데, 1. Convolutional Network를 특징추출기로 사용하는 경우 : ConvNet의 마지막 FC layer를 제외하고, 새로운 데이터셋의 특징..

AI | ML 2021.01.05

딥러닝 학습 데이터셋 쉽게 찾고 다운받기

최근에 데이터 확보를 위해 다양한 데이터셋을 다운받을 일이 생겼습니다. 하지만, 찾기가 힘든 데이터셋들이 많아지면서 저와 비슷한 분이 있지 않을까 해서 어떻게 하면 데이터셋을 빠르게 모을 수 있는지 써보겠습니다. 1. paperswithcode.com/ 사이트에 검색하기 paperswithcode.com은 제가 자주 애용하는 딥러닝 네트워크의 성능과 코드를 찾아볼 수 있는 사이트입니다. 저의 경우엔 image dehazing 분야의 데이터셋이 필요했는데요 Benchmarks 를 보시면 Dataset 종류들이 나옵니다 다양한 논문들이 좌측처럼 그래프를 보이고 있다면, 그 데이터는 그만큼 접근하기 쉽다는 얘기가 되기도 합니다. 그리고, 해당 분야에 어떤 데이터셋 존재하는지도 알 수 있게 됩니다 그 다음은 단..

AI | ML 2020.12.03

EXPLAINING AND HARNESSINGADVERSARIAL EXAMPLES

왼쪽 이미지는 학습된 모델의 입력으로 넣었을 때 판다로 나오지만, 가운데 이상한 사진을 섞어서 모델에 입력하면 우측과 같이 사람이 보았을땐 여전히 판다지만, 딥러닝의 결과로는 99.3% gibbon이라는 긴팔원숭이가 나옵니다. 위와 같이 원래의 입력에 임의의 노이즈를 추가해 의도적으로 결과를 바꾸는 것을 Adversarial Attack 이라고 하고, 반대로 의도적인 방해에 대응하여 인식에 방해되지 않도록 만드는 것을 Adversarial Defense라고 합니다. 딥러닝을 이용한 학습이 증가하면서, 딥러닝이 얼마나 믿을만한지 혹은 딥러닝이 얼마나 개선할 것이 많은지 에 대한 테스트에 관하여 진행한 논문이 있습니다. 해당 논문은 딥러닝에서 선형 모델로부터 풀어나갑니다. 쉽게, y=Wx 라는 함수를 떠올려..

[TensorFlow] Model Save/Load 관련

TF Model Save tf.saved_model.save(model, path) — Keras Output path/saved_model.pb path/assets path/variables variables.data-00000-of-00001 variables.index model.save_weights(path) path 내 variables (Weights) 만 변경하는 방식 Output variables.data variables.index TF Model Load tf.saved_model.load(path) — Keras pb 파일 불러올 때 쓴다 model.load_weights(path) model 의 weight 값을 불러올 때 쓴다 variables.data → saved_model..

AI | ML/코드 2020.08.27

[TensorRT] Window 환경에서 PyTorch로 TensorRT 사용하기

https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html 위의 사이트에 있는 내용을 한글로 제가 겪은 시행착오에 대해서만 쓰는 것입니다. 저와는 다른 상황일 경우, 위의 홈페이지를 참고하시길 바랍니다. 제가 겪은 부분에서 미리 말씀드리면 Windows환경에서 TensorRT 사용은 불가능한 것으로 보입니다. 저의 환경은 다음과 같습니다. CUDA : CUDA 10.0 CUDNN : CUDNN 7.6 OS : Windows10 GPU : GTX1080Ti Python : 3.6 (Anaconda) https://developer.nvidia.com/tensorrt NVIDIA TensorRT */ developer.nvidia.c..

Window C++ ONNX 환경 실행

지난 시간에 C++에서 ONNX 환경 테스트를 실행하였는데요, 이번 시간에는 PyTorch에서 딥러닝 모델을 C++ onnx로 변경하는 방법에 대해 써보겠습니다. 첫단계로, PyTorch 사이트에서 https://pytorch.org/docs/stable/onnx.html#id2에서 model을 onnx로 변경하는 방법을 숙지합니다. torch.onnx.export(model, dummy_input, "alexnet.onnx", verbose=True, input_names=input_names, output_names=output_names) 보통은 학습이 된 model을 옮기실텐데, model 선언 이후, torch.load, model.load_state_dict로 모델에 weight값을 불러와야 ..

Window C++ ONNX 환경 테스트

지난 포스터에서 Windows C++ ONNX 환경 설정을 하였습니다. 이번 시간에는 ONNX를 환경 테스트 하는 방법에 대해 설명하겠습니다. 지난 시간에 https://github.com/microsoft/onnxruntime 사이트에서 onnx 환경을 다운받았는데요, onnx 환경이 제대로 작동하는지 확인하기 위해, 아래 경로의 사이트에서 cpp 예제 파일을 실행해봅시다. #include #include #include int main(int argc, char* argv[]) { //************************************************************************* // initialize enviroment...one enviroment per pr..

Window C++ ONNX 환경 구축

[환경설정] 1) Visual Studio 2017, CUDA, CUDNN, 파이썬, CMake가 설치해야 함 2) Unicode 변경 3) https://pytorch.org/docs/stable/onnx.html 에서 모델변환 방법을 숙지하여 실행해 해당 모델을 onnx 형식으로 바꿉니다. 4) 시작 메뉴 > VS 2017용 x64 네이티브 도구 명령 프롬프트 실행 5) git clone https://github.com/microsoft/onnxruntime 6) 다운받은 폴더로 이동 후, cd onnxruntime 7-1) Debug용 설치 build.bat --use_cuda --cudnn_home "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v1..

1 2 3 4 5
728x90