본문 바로가기

분류 전체보기

(611)
[Linux] command terminal 단축키 1. ctrl + D command 창 exit. 2. ctrl + _ (ctrl + shift + -) Undo 3. ctrl + U 커서 좌로 전부 지우기. 4. ctrl + left arrow / right arrow 단어단위 커서 좌/우 5. alt + backspace 좌측으로 word 지우기 5. Alt + D 우측으로 word 지우기 6. alt + B, alt + F 단어단위 커서 좌/우 7. ctrl + XX 현재 위치 기억하고 맨 앞으로 가기. 다시 누르면 이전 위치로 돌아감. 8. ctrl + K 커서 우로 전부 지우기. 9. !! 마지막 명령어 실행 10. cd - 이전 디렉토리로. Shift + PageUp : 상위 페이지 이동 Shift + PageDown : 아래 페이지 이동 ..
[Python] 상위 경로에 있는 파일을 import 상위 경로 파일 상위 폴더를 참조할 때는 from에 상위 경로를 입력해서 import할 수 없고, 절대경로 path에 상위 경로에 대한 path를 추가해줘야 합니다. 그러면 추가된 상위폴더 경로에서 상대적으로 파일들을 참조할 수 있습니다. 실행파일 경로의 상위 경로를 구하는 코드는 os.path.dirname(os.path.abspath(os.path.dirname(__file__))) 입니다. 이 경로를 sys.path.append로 절대경로에 추가할 수 있습니다. # main.py import sys sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) from . import library $ tree . ├── m..
[Git] git 명령 취소 방법 git 명령 취소 (pull, merge, commit, add 되돌리기) 🧑‍💻 git 명령 취소 방법 git을 사용하다 보면 잘못된 커밋 메세지나 추가, 브랜치 혼동 등 많은 이슈가 있을 수 있습니다. 간단한 커맨드로 git pull, git commit, git add 등의 명령들을 취소하고 되 2vup.com 🚀 git pull 취소하고 되돌리기 (ex.git pull origin main) git reset --hard ORIG_HEAD 🔻 git merge 취소하고 되돌리기 git reset --merge ORIG_HEAD 📮 git commit 취소하고 되돌리기 git reset --hard HEAD 한 단계 앞 commit이나 commit을 실행하기 전 상태로 되돌리는 것이 가능합니다. ➕..
[Linux] cat << EOF > a.txt here document, here-document, heredoc, hereis, here-string, here-script히어 문서, 히어 도큐먼트, 히어 다큐먼트, 히어 문자열, 히어닥 문자열을 쉘스크립트나 프로그래밍 언어 중에 그대로 포함시키기 위한 방법 world > EOF [root@zetawiki ~]# cat a.txt hello world EOF는 End of File, EOT는 End of Text이라는 의미이다. cat world > EOF user01@localhost:~$ cat file1.txt hello world 리눅스 cat
[ML] 이산 확률 분포
[ML] Winograd convolution layer https://arxiv.org/pdf/1810.01973.pdf
[Openvino] 실험 환경/Alderlake lscpu CPU core : Intel i7 CPU core : 20개 CPU Max Clock : 4700MHz CPU 평균 Clock : 2800MHz lsmem memory size : 8G fdisk -l disk size : 약 500G linux 하드웨어 정보 확인 방법 (CPU, MEM, DISK 등) linux 하드웨어 정보 확인 방법 (CPU, MEM, DISK 등) linux 하드웨어 정보 명령어 linux 시작하는 단계에서는 cd, ls, cp, mv 등의 기본적인 command를 배울 것이다. 이런 기본적인 커맨드를 숙지하고 나서는 사 kyumdoctor.co.kr
[ML] Focal Loss hard negative 는 실제로는 negative 인데 positive 라고 잘못 예측하기 쉬운 데이터 easy negative 는 실제로 negative 이고 예측도 negative 라고 잘 나오는 예측이 쉬운 데이터 hard negative sample 을 직석하자만 hard : 어렵다, negative sample: 네거티브 샘플라고, 즉 네거티브 샘플라고 말하기 어려운 샘플이라는 뜻이다. hard negative 는 원래 negative 인데 positive 라고 잘못 예측한 데이터를 말한다. 그림의 빨간 선이 모두 배경을 얼굴이라고 잘못 예측한 hard negative 이다. hard negative는 마치 positive처럼 생겨서 예측하기 어렵다. 모델입장에서 보면 해당 샘플에 대해 ne..
[PyTorch] basic img = transform(cv2.imread('0000.jpg')).unsqueeze(dim=0).to(device) model = ResNet18() model.load_state_dict(torch.load('./saved_model/model_12000_9.pth')) print(type(img)) output = model_predict(img, model.eval(), device) print(classes[output]) img input -> (batch size, channel, h, w) X model = model.load_state_dict(torch.load(PATH)) model = model.eval() -> Type Error O model = Resnet() model.l..
[Python] 파일 경로와 슬래시(/) 파이썬 코드에서 파일 경로를 표시할 때 "C:/doit/새파일.txt" 처럼 슬래시(/)를 사용할 수 있다. 만약 역슬래시(\)를 사용한다면 "C:\\doit\\새파일.txt" 처럼 역슬래시를 2개 사용하거나 r"C:\doit\새파일.txt"와 같이 문자열 앞에 r 문자(Raw String)를 덧붙여 사용해야 한다. 왜냐하면 "C:\note\test.txt"처럼 파일 경로에 \n과 같은 이스케이프 문자가 있을 경우 줄바꿈 문자로 해석되어 의도했던 파일 경로와 달라지기 때문이다. 04-3 파일 읽고 쓰기 우리는 이 책에서 이제까지 값을 입력받을 때는 사용자가 직접 입력하는 방식을 사용했고 출력할 때는 모니터 화면에 결괏값을 출력하는 방식으로 프로그래밍해 왔다. 하지만 ... wikidocs.net
[CUDA] version 설치해야할 것 1. pytorch 2. cuda 3. cudnn 4. nvidia driver 5. anaconda 파이토치 설치를 위한 CUDA + cuDNN 설치(cuda toolkit 11.3.0, cudnn v8.2.0) 내 소감 : 지난 몇달간 텐서플로우로 논문구현을 하려고 얼마나 애를 썼는지 모른다. 텐서플로우로 논문을 구현하려면, cuda 와 cudnn 모두 설치해줘야 했다. 한동안 열심히 여러차례 시도해봤지만 leonam.tistory.com 현재 상태 1. pytorch 1.12.0 2. cuda 11.7.0 anaconda => cuda toolkit 11.3 3. cudnn
[C&C++] undefined reference to~ /cpp 파일에서 c 파일 불러오기 [C, C++] error: undefined reference to 빌드 시 가장 흔하게 발생하는 에러 중 하나로 다음 두가지 이유 중 하나로 발생한다. 1. 가장 흔히 발생하... blog.naver.com cpp 파일에서 c 파일에 구현되어 있는 함수를 call 할때 발생한다. c 파일에 구현되어 있는 함수의 정의가 적혀 있는 header 파일을 #ifndef _FILENAME_H_ #define _FILENAME_H_ #ifdef __cplusplus extern "C" { #endif .... #ifdef __cplusplus } #endif #endif /* _FILENAME_H_ */ extern "C"{ } 로 감싸야 함
[C&C++] 조건부 컴파일 사용하기 C 언어 코딩 도장: 76.1 조건부 컴파일 사용하기 조건부 컴파일은 #ifdef와 #endif 지시자를 사용하여 정의합니다. #ifdef에 매크로를 지정하면 해당 매크로가 정의되어 있을 때만 코드를 컴파일합니다. #ifdef 매크로 코드 #endif 다음 내용을 소스 코 dojang.io #ifdef, #endif가 전처리기 과정을 거치면 코드는 다음과 같이 바뀝니다.▼ 그림 76‑1 #ifdef 조건부 컴파일
[Linux] ssh로 파일전송 - scp ssh로 파일전송 - scp ssh로 간단하게 파일을 전송할 수 있습니다. scp라는 명령어를 사용하면 되는데 사용법은 아래와 같이 매우 단순합니다 1. 일반적인 파일 전송 ~ scp (전송할 파일) (아이디@전송할 서버주소):(저장 tourspace.tistory.com 1. 일반적인 파일 전송 ~ scp (전송할 파일) (아이디@전송할 서버주소):(저장될 서버의 디렉토리) ex) ~ scp /home/local/a.txt remote@myserver.com:/home/remote 2. ssh 포트 번호가 22번(기본)이 아닌경우 ~ scp -P 포트번호 (전송할 파일) (전송할 서버주소@아이디):(저장될 서버의 디렉토리) ex) ~ scp -P 9999 /home/local/a.txt remote@m..
[Pytorch] 텐서 쌓기 함수 torch.cat(), torch.stack() 비교 [Pytorch] 텐서 쌓기 함수 torch.cat(), torch.stack() 비교 torch cat vs stack 함수 차이 이번 글에서는 파이토치에서 텐서를 쌓는 경우 사용하게 되는 cat과 stack 함수의 차이와 사용 방법에 대해서 살펴보도록 하겠습니다. 먼저, 다음과 같이 간단한 (2, 3) shape jimmy-ai.tistory.com 이번 글에서는 파이토치에서 텐서를 쌓는 경우 사용하게 되는 cat과 stack 함수의 차이와 사용 방법에 대해서 살펴보도록 하겠습니다. 먼저, 다음과 같이 간단한 (2, 3) shape의 2차원 텐서 2개를 선언하겠습니다. import torch # (2, 3) 사이즈 2차원 텐서 2개 생성 a = torch.tensor([[1, 2, 3], [4, 5,..
[Python] json파일 다루기 (읽기, 쓰기, 수정) # json 파일 읽기 해당 파일을 읽기 위해서는 json 모듈을 임포트 한후, load함수를 통해 데이터를 가져올 수 있다. import json with open('C:\\test.json', 'r') as f: json_data = json.load(f) print(json.dumps(json_data) ) 출력 : {"K5": {"price": "5000", "year": "2015"}, "Avante": {"price": "3000", "year": "2014"}} 아래와 같이 들여쓰기를 통해 깔끔하게 출력하는 옵션도 있다. print(json.dumps(json_data, indent="\t") ) 출력 { "K5": { "price": "5000", "year": "2015" }, "Avan..
[Colab] 구글 드라이브 파일 다운로드 [CoLab] 파일 zip하는 법 [CoLab] 파일 zip하는 법 1. 자신의 위치를 파악합니다.(아마 '/content'에 있으실 것입니다.) !pwd 2. zip하고자 하는 파일 경로를 알아냅니다. 이 때 왼쪽에 있는 폴더 모양을 클릭하여 위치를 찾으면 aigong.tistory.com
[Python] os.path.join 실제로는 join()은 디렉토리의 구분 문자가 들어있으면, 그것을 root로 보는 성질이 있다. 대처법으로는 먼저 리스트를 이용해 문자열을 바꿔 쓰는 방법이 있다. [python] os.path.join사용법 os.path.join이란 경로(패스)명 조작에 관한 처리를 모아둔 모듈로써 구현되어 있는 함수의 하나이다. 인수에 전달된 2개의 문자열을 결합하여, 1개의 경로로 할 수 있다. os.path.jon()을 사용하기 위 engineer-mole.tistory.com
[MS] TVM 들어가기 앞서, 딥러닝 모델을 특정 디바이스 상에서 효율적으로 동작시키기 위해서는, 동작시킬 딥러닝 모델을, 타겟 디바이스에서 최적의 속도와 정확도를 낼 수 있는 머신 코드로 변환해야합니다. 이러한 코드 변환 작업을 자동으로 지원해주는 도구를, ‘딥러닝 컴파일러’라고 합니다. 딥러닝 컴파일러 개념도 딥러닝 컴파일러는, 다양한 딥러닝 플랫폼에서 학습된 딥러닝 모델을 입력으로 받아, 특정 하드웨어에서 동작 가능한 머신 코드(또는, 백엔드 코드)를 자동으로 생성합니다. 최근 제안된 XLA, TVM, Glow 와 같은 딥러닝 컴파일러들은, TensorFlow, Pytorch, MxNet, ONNX 등의 프레임워크로 작성된 모델을 입력으로 하여, CPU 및 GPU 용 백엔드 코드를 생성하고 있습니다. CPU 용 ..
[MS] RISC-V 란 무엇인가 RISC-V는 확립 된 축소 명령 세트 컴퓨터 (RISC) 원칙을 기반으로하는 개방형 표준 명령 세트 아키텍처 (ISA)입니다. 대부분의 다른 ISA 디자인과 달리 RISC-V ISA는 사용 비용이 필요없는 오픈 소스 라이센스로 제공됩니다. 많은 회사에서 RISC-V 하드웨어를 제공하거나 발표했으며 공개 소스 운영 체제를 사용할 수 있으며 명령 세트는 널리 사용되는 여러 소프트웨어 툴체인에서 지원됩니다. 명령 집합 아키텍처가 중요한 이유 ISA는 어떻게 든 응용 프로그램을 결정합니다. 세계에서 가장 유명한 2 ISA는 X86과 ARM이라는 것이 상식입니다. 그들의 응용 분야는 완전히 다릅니다. 랩톱, 데스크톱 및 서버의 99 % 이상이 X86 또는 AMD64 ISA를 기반으로합니다. IP는 Intel 및..
[PyTorch] torch.nn.CrossEntropyLoss() cls_loss = nn.CrossEntropyLoss() test_pred_y = torch.Tensor([[2,0.1,0.3],[0,1,0.3]]) # 실제 사용에선 softmax에 의해 각 행의 합이 1이 될 것이다. test_true_y1 = torch.Tensor([1,0]).long() # 1은 true값이 1번째(클래스)라는 것을 의미 test_true_y2 = torch.Tensor([0,1]).long() print(test_pred_y.shape) print(test_pred_y) print(test_true_y1) print(test_true_y2) print(cls_loss(test_pred_y, test_true_y1)) print(cls_loss(test_pred_y, test_..
[PyTorch] torchvision.dataset.CoCoDetection dataLoader를 만들어서 train함수에 넣어주어야 하는데 이 때 dataLoader를 만들려면 class로 데이터셋에 대한 정의가 있어야 한다. !git clone https://github.com/pdollar/coco/ %cd coco/PythonAPI/ !make !python setup.py install %cd ../.. !rm -r coco !sudo apt-get update !sudo apt-get install aria2 !aria2c -x 10 -j 10 http://images.cocodataset.org/zips/train2017.zip !aria2c -x 10 -j 10 http://images.cocodataset.org/zips/val2017.zip !aria2c -x ..
[PyTorch] model의 parameter 접근하기 nn.Linear()등으로 정의한 파라미터 접근은 parameter(), named_parameters()으로 가능하다. 정확히는 layer가 모두 nn.Module()을 상속받으므로 Module에 정의되어 있는 parameter 접근 방법을 사용하면 된다. 1. torch.nn.Module.parameters() parameter()는 layer 이름을 제외한 parameter값에 대한 iterator를 준다. layer = torch.nn.Linear(10,3) layer >> Linear(in_features=10, out_features=3, bias=True) for p in layer.parameters(): print(p) >> Parameter containing: tensor([[-0.2..
[ML] DCN, Deformable Convolution Networks 일반적으로 object detection 또는 segmentation은 pre-trained model을 사용합니다. 따라서 모든 layer에 deformable convolution을 사용하는 것이 아니라, 마지막 1~3 layer만 deformable convolution으로 변경하여 전이 학습을 진행합니다. [논문 읽기] DCN(2017) 리뷰, Deformable Convolution Networks 안녕하세요! 이번에 읽어볼 논문은 DCN, Deformable Convolution Networks 입니다! DCN은 (1) deformable convolution, (2) deformable RoI pooling 두 가지 방법을 제시합니다. 기존 CNN 구조 모델은 고정된.. deep-learni..
[ML] AutoEncoder 또한, 오토인코더는 reduction 측면과, reconstructing 측면이 함께 학습되며, 압축된 data coding을 통해서 실제 입력과 최대한 가까운 결과를 생성하기 때문에 Generative Model의 역할도 수행할 수 있습니다. 위 내용을 토대로 위키피디아에서 오토인코더의 키워드는 다음과 같습니다. Keword - Unsupervised learning - Representation learning (= Efficient coding learning) - Dimensionality reduction - Generative model learning 주로 오토인코더는 Dimensionality reduction, 차원 축소를 위해서 많이 사용됩니다. 오토인코더의 차원축소는 정확히 말하면 N..
[ML] 분류 성능 평가 지표 1. Precision, Recall and Accuracy Precision, Recall, Accuracy는 논문에서도 사용하는 지표들이며 가장 눈에 익는 지표들입니다. 하지만 서로 헷갈리는 경우가 많으니, 제대로 정리할 필요가 있겠습니다. 우리는 모델이 예측한 다양한 경우를 생각해보며, 위의 2x2 matrix에 해당하는 것을 어떻게 지표화 할 것인지 고민해보겠습니다. 지표를 고민함과 동시에 실제 사례를 들어서 해당 지표를 왜 써야하는지도 함께 생각해보고자 합니다. 여기서는 한달 동안의 날씨를 예측하는 상황을 생각해보겠습니다. 날씨는 비가 오거나 맑거나 두 가지만 존재한다고 가정합니다. 1.1 Precision(정밀도) 정밀도란 모델이 True라고 분류한 것 중에서 실제 True인 것의 비율입니다...
[ML] CNN의 역전파(backpropagation) cnn을 대충대충 알고서는 안다고 생각하고 있었는데 하나 하나 뜯어보니 제대로 아는게 하나도 없었다... 개념설명할 때도 항상 feed forward만 설명하지 backpropagation은 없었다. CNN의 역전파(backpropagation) · ratsgo's blog 이번 포스팅에서는 Convolutional Neural Networks(CNN)의 역전파(backpropagation)를 살펴보도록 하겠습니다. 많이 쓰는 아키텍처이지만 그 내부 작동에 대해서는 제대로 알지 못한다는 생각에 저 스스로도 ratsgo.github.io
[ML] Backpropagation Back Propagation이란 'Back Propagation' 는 Output Layer 직전의 Layer부터 최적화합니다. 미리 말하고 싶은 것은 'Back Propagation'도 Gradient Descent를 이용합니다. 즉 앞서 배웠던 Forward Propagation처럼 Cost를 구하여 W를 여러번 갱신하여 최적화합니다. 다만 그 차이는 'Forward Propagation'은 한번의 갱신을 위한 Cost를 구하는데 비효율적으로 많은 연산을 필요로 합니다. 그러나 'Back Propagation'에서는 최적화의 순서를 달리하여 몇번의 연산만으로 Cost를 구할 수 있습니다. 수식↓ A Step-by-Step Implementation of Gradient Descent and Back..
[ML] Transfer learning 2 Transfer learning은 classifier를 변경한다. Fine tuning은 이렇게 변경된 모델 전체를 다시 training한다. [DL] Transfer Learning vs Fine-tuning, 그리고 Pre-training 딥러닝에서 신경망을 공부하다보면 transfer learning과 fine tuning이라는 단어를 심심치않게 접할 수 있다. 둘 사이에는 무슨 차이가 있을까? 사실 필자도 생각없이 혼용하다(ㅋㅋ) 의문점을 해소할 heeya-stupidbutstudying.tistory.com [ 딥러닝 알아가기 ] Transfer Learning과 Fine Tuning Transfer Learning (전이학습) 성능이 좋은 딥러닝 모델을 만드는 최고의 방법은 바로 많은 수의 데..
[Colab] 무료 버전, pro 버전 차이점