vim 편집 시 ctrl+s 눌렀을 때 터미널 멈추는 현상
vim 으로 원격서버에 있는 코드 편집중이였는데 습관적으로 ctrl+s 를 누르다보니 터미널이 멈추는 현상이 발생하여 검색해보았다. 스크롤 락 건거라고 한다. ctrl+Q 누르면 다시 움직인다. 그리고 편집중에 터미널을 꺼버리면 .swp 확장자 파일이 생겨서 자꾸 다시 편집 할 때 마다 E325: ATTENTION 에러가 뜨니까 아래 블로그를 참고하여 해결하길 바란다. 요약하면 아래와 같다. .swp 파일 확인 -> 다른 프로세스가 작업중인지 확인 -> 사용안하면 파일 저장(wq) -> rm ~~.swp 삭제 E325: ATTENTION 해결 방법 https://clear-sky-sun.tistory.com/23 E325: ATTENTION vi swap 해결 방법 Linux vi을 통하여 작업을 하던 ..
2022.04.13
[Linux] 파일 개수 및 디렉토리 개수 세기
리눅스 환경에서 현재 폴더의 파일 개수를 세는 명령어는 아래와 같다. ls -l | grep ^- | wc -l 디렉토리의 개수를 세는 명령어는 아래와 같다. ls -l | grep ^d | wc -l 참고로 ls 는 현재 디렉토리의 내용을 확인 할 수 있으며, grep 명령어는 파일 내용에서 특정 문자열을 찾을 때 사용하는데, ^ 라는 것이 붙으면 문자열 라인의 처음을 보겠다는 뜻이다. 그리고 wc 명령어는 파일 또는 표준입력의 줄 수를 출력한다. 뜻을 알면 잘 외워진다.
2022.03.28
[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
[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
[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
[CUDA] CUDA C/C++ Basics Supercomputing 2011 Tutorial
참고자료 : https://www.nvidia.com/docs/IO/116711/sc11-cuda-c-basics.pdf
2022.02.22
[Linux] 표준 스트림 개념 및 표준 출력 및 오류를 /dev/null 처리하기
1. 표준 스트림 리눅스 환경에서 표준 스트림은 다음과 같이 구분된다. 표준 입력 스트림(standard input, stdin) 표준 출력 스트림(standard output, stdout) 표준 에러 스트림(standard error, stderr) 2. 리다이렉션(Redirection) 리다이렉션을 이용하면 각 스트림의 방향을 지정 할 수 있다. 종류 기호 사용법 설명 표준출력(덮어쓰기) > 명령어 > 파일 명령어의 표준출력 스트림의 도착 지점을 파일로 설정(덮어쓰기) 표준출력(추가) >> 명령어 >> 파일 명령어의 표준출력 스트림의 도착 지점 파일에 내용을 추가 표준입력 /dev/null 아래와 같이 사용하기도 한다. ~$ command 1> /dev/null 예를 들어 test.txt 라는 파일..
2022.02.09
no image
[PyTorch] 파이토치에서 TensorBoard 사용하기
텐서보드는 머신러닝 실험에 필요한 시각화 및 도구를 제공한다. 손실 및 정확도와 같은 측정항목 추적 및 시각화 모델 그래프(작업 및 레이어) 시각화 시간의 경과에 따라 달라지는 가중치, 편향, 기타 텐서의 히스토그램 확인 저차원 공간에 임베딩 투영 이미지, 텍스트, 오디오 데이터 표시 TensorFlow 프로그램 프로파일링 그 외 다양한 도구 텐서보드를 파이토치 에서도 사용 할 수 있다. 1. SummaryWriter 인스턴스 생성하기 import torch from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter() Writer 는 기본적으로 ./runs/ 디렉터리에 출력된다고 한다. 원하는 디렉터리에 출력하려면 아래와 같이 수정..
2022.02.04