python의 __future__ 문 중에서 from __future__ import annotations는 함수나 클래스가 정의될 때 타입 힌트를 평가하지 않고 문자열 형태로 저장한다. 코드 작성과 유지보수가 훨씬 간단해지며 다음과 같은 상황에서 유용하다. 1. forward reference 간소화두 클래스가 서로 참조해야 할 때, 타임 이름을 문자열로 감싸야 'NameError'가 발생하지 않았는데 from __future__ import annotations를 사용하면 문자열로 감쌀 필요가 없다.class A: def __init__(self, b: 'B'): # 문자열로 감싸야 함 self.b = bclass B: def __init__(self, a: 'A'): ..
종종 도커 컨테이너에서 작업을 한 결과물을 다른 서버로 옮길 때 scp를 사용하는데 scp: Permission denied를 마주할 때가 있다.. 도커 컨테이너 내에서 생성된 폴더 및 파일들이 전부 root 계정에서 생성 되었기 때문에 생기는 문제로 두 가지 방법으로 해결할 수 있다. 1. 권한 부여먼저 이동하고자 하는 폴더 및 파일의 권한을 확인 후 쓰기 권한이 없다면 부여 해 주면 된다.r은 읽기 권한, w는 쓰기, x는 실행 권한으로 옮기고자 하는 대상에 w 권한이 없다면 부여 해 줘야 한다.sudo chmod 777 "target file" 2. 소유자 변경권한을 부여했는데도 동일한 에러가 발생한다면 소유자를 변경 해 줘야 한다.root 계정에서 생성한 파일을 user 계정으로 scp를 통해 ..
conda가 설치 되어 있는 pytorch docker image로 컨테이너를 생성했는데 conda activate 명령어로 가상환경이 활성화가 안되는 문제를 마주했다. 시키는대로 shell을 닫고 재시작 후 conda init bash를 했는데 별 다른 변화가 없었다. 찾아보니 conda가 설치된 경로에 있는 파일로 직접 가상환경을 활성화 해 주면 conda activate로도 활성화를 할 수 있다고 한다.위 사진에서 conda 가상환경 실행 스크립트의 경로는여기이다. source /opt/conda/etc/profile.d/conda.sh이렇게 직접 가상환경을 활성화 해 주고 나면 conda activate 명령어로 가상환경이 활성화 된다.
putty ppk를 전달 받아서 aws 서버에 접속해서 작업 중이었는데 vscode에서 편하게 코드 작업을 하고자 vscode에 ssh 연결을 했다.vscode에서 ppk로 ssh 접속을 하는 건 처음이어서 여기저기 많이 찾아보면서 성공했다..! 1. putty install먼저 putty를 아래 사이트에서 설치를 해 줘야 한다.https://www.putty.org/ Download PuTTY - a free SSH and telnet client for WindowsIs Bitvise affiliated with PuTTY? Bitvise is not affiliated with PuTTY. We develop our SSH Server for Windows, which is compatible w..
https://school.programmers.co.kr/learn/courses/30/lessons/258712?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 제출 코드def solution(friends, gifts): answer = 0 n = len(friends) friend_dict = dict() for i in range(n): friend_dict[friends[i]] = i table = [[0] * n for _ in range(n)] gift_in..
특정 폴더 내에 있던 모든 파일들의 이름을 한번에 수정을 해야 했는데 코드를 짜서 실행 시키려니 더 좋은 방법이 없을까 알아보다가 rename 명령어를 알게 되었다.# ubunturename 's/old_string//g' *.txt # old_string을 지우는 명령어rename 's/old_string/new_string/g' *.txt # old_string 대신 new_string으로 대체하는 명령어ubuntu에서는 rename 명령어를 사용해서 터미널 상에서 현재 폴더에 있는 모든 파일들의 파일명에서 특정 문자를 삭제하거나 새로운 문자로 대체하는 등 수정할 수 있다. 윈도우에서도 동일한 작업을 하고 싶었는데 powershell에서는 rename 명령어가 먹히지 않았다.#..
YOLOv10: Real-Time End-to-End Object Detection, Ao Wang, et al., 2024 를 읽고 요약, 정리한 글입니다.github : https://github.com/THU-MIG/yolov10 ◼️contrbution- 기존 YOLO 아키텍쳐는 NMS에 대한 의존성이 높아 정확도는 향상시키지만 latency를 초래함.- 본 논문은 NMS 없는 YOLO 모델을 만들기 위해 이중 할당 전략을 제안하여 중복 예측 문제를 해결함.- 본 논문은 계산 중복을 줄이기 위해 lightweight classification head, spatial-channel decoupled downsampling, rank-guided block design을 포함한 아키텍쳐를 제안함. ..
회사에서도 집에서도 윈도우를 메인 pc로 사용하면서 리눅스 서버에 ssh로 붙어서 사용을 하다보니 서버에서 결과물을 화면에 표시해야 할 일이 자주 있다.리눅스 서버에서 화면에 디스플레이를 하려면 X11 forwarding 설정을 진행 해 줘야하는데 X window 기반 GUI 프로그램을 메인 pc인 윈도우에 설치하면 사용할 수 있게 된다. Xming은 X window 기반 GUI 실행 프로그램을 윈도우 pc에서 실행할 수 있도록 도와주는 프로그램으로 오픈소스라서 누구나 쉽게 설치하여 사용할 수 있다.https://sourceforge.net/projects/xming/files/latest/download위 사이트에서 다운로드 후 full installation을 선택하고아이콘 생성 여부와 확장자 파일 ..
최근에 클래스 다이어그램을 그릴 일이 있었는데 draw.io로 그리려고 했는데 여간 귀찮은 게 아닌게 다른 방법은 없나 찾아보니 python 라이브러리인 pyreverse로 뚝딱 만들 수 있다는 걸 알게 됐다.draw.io를 사용해서 class diagram을 그리면 위와 같이 그릴 수 있다. 하지만 이번에는 pyreverse, pylint를 사용하여 정말 간단하게 그릴 수 있었다.1. pyreverse, pylint 설치pip install pyreversepip install pylintpylint를 설치하면 pyreverse도 같이 설치된다. 2. pyreverse 실행pyreverse -o png ./pyreverse -o [확장자명] [경로]경로에는 diagram을 그릴 폴더의 __init__..
YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information, Chien-Yao Wang, et al., 2024 을 읽고 요약, 정리한 글입니다. github : https://github.com/WongKinYiu/yolov9 ◼️ Contribution- 현존하는 심층 신경망 구조를 reversible fuction의 과점에서 이론적으로 분석하고 이러한 프로세스를 통해 이전에는 설명하기 어려웠던 많은 현상들에 대해 설명함.- 이러한 분석을 기반으로 PGI와 auxiliary reversible branch를 설계하고 좋은 결과를 얻음.- PGI는 deep supervision이 아주 깊은 신경망 구조에서만 사용할 수 ..