전체 글

나의 성장 일기가 되었으면 하는 블로그 contact : ryuhyojung@naver.com
Python

__future__ 문 | from __future__ import annotations

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'): ..

각종 에러들을 해결 해 보자

Ubuntu | scp: Permission denied, 폴더 및 파일의 소유자 변경하기

종종 도커 컨테이너에서 작업을 한 결과물을 다른 서버로 옮길 때 scp를 사용하는데 scp: Permission denied를 마주할 때가 있다.. 도커 컨테이너 내에서 생성된 폴더 및 파일들이 전부 root 계정에서 생성 되었기 때문에 생기는 문제로 두 가지 방법으로 해결할 수 있다. 1. 권한 부여먼저 이동하고자 하는 폴더 및 파일의 권한을 확인 후 쓰기 권한이 없다면 부여 해 주면 된다.r은 읽기 권한, w는 쓰기, x는 실행 권한으로 옮기고자 하는 대상에 w 권한이 없다면 부여 해 줘야 한다.sudo chmod 777 "target file"  2. 소유자 변경권한을 부여했는데도 동일한 에러가 발생한다면 소유자를 변경 해 줘야 한다.root 계정에서 생성한 파일을 user 계정으로 scp를 통해 ..

각종 에러들을 해결 해 보자

CommandNotFoundError : Your shell has not been properly configured to use 'conda activate'. | IMPORTANT: You may need to close and restart your shell after running 'conda init'.

conda가 설치 되어 있는 pytorch docker image로 컨테이너를 생성했는데 conda activate 명령어로 가상환경이 활성화가 안되는 문제를 마주했다. 시키는대로 shell을 닫고 재시작 후 conda init bash를 했는데 별 다른 변화가 없었다. 찾아보니 conda가 설치된 경로에 있는 파일로 직접 가상환경을 활성화 해 주면 conda activate로도 활성화를 할 수 있다고 한다.위 사진에서 conda 가상환경 실행 스크립트의 경로는여기이다. source /opt/conda/etc/profile.d/conda.sh이렇게 직접 가상환경을 활성화 해 주고 나면 conda activate 명령어로 가상환경이 활성화 된다.

etc

VSCode | putty ppk로 vscode에서 aws 서버에 ssh 접속하기

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..

Algorithm

[프로그래머스] Level1 | 가장 많이 받은 선물 - 파이썬(Python) | 2024 KAKAO WINTER INTERNSHIP

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..

etc

Ubuntu & Powershell | 파일명에서 특정 문자 지우기

특정 폴더 내에 있던 모든 파일들의 이름을 한번에 수정을 해야 했는데 코드를 짜서 실행 시키려니 더 좋은 방법이 없을까 알아보다가 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

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을 포함한 아키텍쳐를 제안함. ..

etc

Window | Xming으로 윈도우에서 리눅스 GUI 사용하기

회사에서도 집에서도 윈도우를 메인 pc로 사용하면서 리눅스 서버에 ssh로 붙어서 사용을 하다보니 서버에서 결과물을 화면에 표시해야 할 일이 자주 있다.리눅스 서버에서 화면에 디스플레이를 하려면 X11 forwarding 설정을 진행 해 줘야하는데 X window 기반 GUI 프로그램을 메인 pc인 윈도우에 설치하면 사용할 수 있게 된다. Xming은 X window 기반 GUI 실행 프로그램을 윈도우 pc에서 실행할 수 있도록 도와주는 프로그램으로 오픈소스라서 누구나 쉽게 설치하여 사용할 수 있다.https://sourceforge.net/projects/xming/files/latest/download위 사이트에서 다운로드 후 full installation을 선택하고아이콘 생성 여부와 확장자 파일 ..

Python

pyreverse | python UML Class Diagram 자동 생성, ubuntu, wsl2에서 pyreverse, pylint 실행

최근에 클래스 다이어그램을 그릴 일이 있었는데 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

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이 아주 깊은 신경망 구조에서만 사용할 수 ..

토오오끼
초보 개발자의 일기장