[Linux] 파일 개수 및 디렉토리 개수 세기
리눅스 환경에서 현재 폴더의 파일 개수를 세는 명령어는 아래와 같다. ls -l | grep ^- | wc -l 디렉토리의 개수를 세는 명령어는 아래와 같다. ls -l | grep ^d | wc -l 참고로 ls 는 현재 디렉토리의 내용을 확인 할 수 있으며, grep 명령어는 파일 내용에서 특정 문자열을 찾을 때 사용하는데, ^ 라는 것이 붙으면 문자열 라인의 처음을 보겠다는 뜻이다. 그리고 wc 명령어는 파일 또는 표준입력의 줄 수를 출력한다. 뜻을 알면 잘 외워진다.
2022.03.28
no image
[Book Review] fastai와 파이토치가 만나 꽃피운 딥러닝
한빛미디어에서 "fastai와 파이토치가 만나 꽃피운 딥러닝" 이라는 책이 출간되어 읽어보았다. 먼저 fastai가 무엇인지 알아보았다. fastai는 제레미 하워드라는 사람이 만든 PyTorch의 상위 Wrapper 같은 개념이며, PyTorch를 이용하여 다양한 기능들을 자동화시켜주고, 딥러닝 모델 구현을 용이하게 한다고 한다. 이 책에서는 fastai를 이용하여 최고의 결과를 달성하는 모델을 학습 시키는 방법, AI 모델을 웹 어플리케이션으로 바꾸는 방법, 딥러닝 모델이 작동하는 이유와 방법 등을 다룬다. 또한 딥러닝을 처음 접하는 사람들을 대상 독자로 다루고 있으며, 코딩 경험이 없더라도 내용을 이해하는데에는 무리가 없다. 다만 책이 총 720 페이지에 달하기 때문에 들고다니기에는 약간 무리가 있..
2022.03.27
[PyTorch] PyTorch 모델을 저장하는 방법 및 고려해야할 점
PyTorch 모델을 학습 한 뒤, 모델을 저장하고 불러오는 방법은 다음과 같다. 모델 저장하고 불러오기 다음과 같이 PyTorch 모델은 학습한 매개변수를 state_dict 이라고 불리는 internal state dictionary에 저장한다. 이 state 값들은 torch.save 함수를 이용하여 저장 할 수 있다고 한다. 모델의 가중치를 불러와서 저장하려면 저장하려는 모델의 인스턴스를 생성한 다음 load_state_dict() 함수를 사용하여 매개변수를 불러온다. 참고로 state_dict은 dictionary 이며 이 형태에 맞게 데이터를 저장하거나 불러오는 것이 가능하다. 이는 각 계층을 매개변수 Tensor로 매핑하며 학습 가능한 매개변수를 갖는 계층(conv layer, linear ..
2022.03.23
no image
[TensorRT] trtexec dumpProfile
공개되어있는 모델을 TensorRT Engine으로 변환하고, trtexec 에 있는 dumpProfile 플래그를 이용하여 Layer 마다 Profile 해본 결과는 아래와 같다. 이를 이용하여 원하는 속도가 나오도록 모델을 적절하게 만들면 될 듯 하다. time 뿐만 아니라 memory 또는 GPU Utilization도 확인하는 방법이 있는지 찾아봐야겠다. 참고로 Profile에 나와있는 PWN은 PointWiseNode이다. ​ ... 참고자료 1 : https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#trtexec Developer Guide :: NVIDIA Deep Learning TensorRT Documenta..
2022.03.22
no image
[NVIDIA TAO Toolkit] TAO(Train, Adapt, and Optimize) Toolkit
NVIDIA TAO Toolkit User Guide : https://docs.nvidia.com/tao/tao-toolkit/index.html TAO Toolkit — TAO Toolkit 3.21.11 documentation © Copyright 2021, NVIDIA. Last updated on Nov 29, 2021. docs.nvidia.com NVIDIA TAO Toolkit Release Notes : https://docs.nvidia.com/tao/tao-toolkit/text/release_notes.html Release Notes — TAO Toolkit 3.21.11 documentation Release Contents Components included in this r..
2022.03.15
no image
NVIDIA Jetson Benchmarks
NVIDIA Jetson Benchmarks 참고자료 https://developer.nvidia.com/embedded/jetson-benchmarks Jetson Benchmarks Jetson is used to deploy a wide range of popular DNN models and ML frameworks to the edge with high performance inferencing, for tasks like real-time classification and object detection, pose estimation, semantic segmentation, and natural language processi developer.nvidia.com Jetson is used t..
2022.03.15
no image
[Pose Estimation] Google Research의 MoveNet API
Google Research에서 TensorFlow.js 로 경량화된 자세 추정 모델인 MoveNet의 API를 공개하였습니다. 랩탑 환경에서도 30FPS 이상 달성한다고 합니다. 참고로 이를 기반으로 홈트레이닝 분야에 적용을 한 국내 논문 "딥러닝 기반 영상처리 기법 및 표준 운동 프로그램을 활용한 비대면 온라인 홈트레이닝 어플리케이션 연구"도 있네요. MoveNet은 17개의 keypoint를 감지하는 모델이며, 정확도에 초점을 맞춘 Thunder 버전과 속도에 초점을 맞춘 Lightning 버전을 제공하고 있습니다. 또한 JS 모델과 TF모델 및 TFLite모델(+ float16, int8)들을 제공하고 있습니다. 서버 호출 없이도 TensorFlow.js를 사용하는 브라우저에서 모델을 실행할 수 ..
2022.02.24
[TensorRT] Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.
ONNX를 TRT로 변환하면 아래와 같은 Warning 메세지가 뜬다. Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32. 성능상의 손실은 없는 것으로 판단되나 정말 성능에 영향이 없는지 실험이 필요하다. 왜 뜨는 것일까? 관련 이슈 : https://github.com/onnx/tensorflow-onnx/issues/883#issuecomment-614561227 Your ONNX model has been generated with INT64 weights, while TensorRT does not nati..
2022.02.23
no image
[Book Review] 비전 시스템을 위한 딥러닝
한빛미디어에서 "비전 시스템을 위한 딥러닝" 이라는 책이 출간되었다. 개인적으로 딥러닝 책은 영상, 음성, 자연어 등의 분야들이 모두 포함되어 있는 책이 많았어서 오로지 "컴퓨터 비전"만을 위한 책이 발간됬다는 소식이 무척이나 반가웠다! 🥰 컴퓨터비전이란 이 책에서도 말하고 있듯 "생물의 시각을 모사한다"라는 목표를 지향하는 기술 분야이다. 즉 인간의 눈으로 인지하는 모든 것들을 위한 기술이라고 말할 수 있다. 컴퓨터 비전이라는 연구분야는 결과물이 정적인 이미지나 동적인 영상으로 눈에 가시적으로 보이니까 더 흥미로운 분야인 것 같다. 한빛미디어에서 출간된 비전 시스템을 위한 딥러닝이라는 책의 목차는 다음과 같이 알짜배기만 쏙 담긴 구성으로 이루어져있다. 초보자를 위한 신경망과 딥러닝의 기초 사물 분류 및..
2022.02.23
no image
[TensorRT] ONNX 및 TRT에서 Group Normalization 사용하기 (+ Instance Normalization 이슈)
PyTorch 1.6.0 / ONNX opset 10, 11 / TensorRT 7.2.2.3 환경에서 파이토치의 어떤 모델을 ONNX 모델로 변환하고, ONNX 모델을 TensorRT 모델(+ Dynamic Shape)로 변환한 뒤 Python, C++ 각 환경에서 사용하고자 할 때 아래와 같이 Engine Serialization를 못하는 문제가 발생하였었다. 결론부터 말하자면 TensorRT에서는 Group Normalization을 지원하지 않는다. PyTorch에서 Group Normalization을 사용하게 되면 ONNX와 TensorRT에서 Instance Normalization 노드가 생기게 되는데 이는 TensorRT 에서 지원하지 않는다. Custom Plugin 을 생성해줘야한다...
2022.02.23
no image
[TensorFlow Lite] MobileNet v1 모델의 tflite 파일 구조
https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md GitHub - tensorflow/models: Models and examples built with TensorFlow Models and examples built with TensorFlow. Contribute to tensorflow/models development by creating an account on GitHub. github.com 위 GitHub 에서 다운 받은 mobilenet_v1_1.0_224_quantized_1_metadata_1.tflite 을 netron 에서 확인해보았다. 아래와 같이 구성되어 있으며, type이 ..
2022.02.23
FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated
TensorFlow Lite 파일을 interpreter로 읽어들이는데 다음과 같은 Warning 이 자꾸 떴다. /home/name/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) /home/name/.local/lib/python3.6/site-..
2022.02.23