[PyTorch] 연산 그래프 제어
detach() .detach()는 PyTorch의 연산 그래프를 끊어버리는 역할을 한다. 예를 들어, 신경망의 입력 $x$가 두 개의 layer $f$와 $g$를 지나 최종 예측값 $\hat{y}$로 만들어지는 과정이 있다고 해보자. [x \xrightarrow{f} a \xrightarrow{g} \hat{y}] 여기서 예측값 $\hat{y...
detach() .detach()는 PyTorch의 연산 그래프를 끊어버리는 역할을 한다. 예를 들어, 신경망의 입력 $x$가 두 개의 layer $f$와 $g$를 지나 최종 예측값 $\hat{y}$로 만들어지는 과정이 있다고 해보자. [x \xrightarrow{f} a \xrightarrow{g} \hat{y}] 여기서 예측값 $\hat{y...
VS Code에서는 터미널에 명령어를 직접 치지 않아도, 자체 내장된 Source Control 탭과 Git Graph 확장 프로그램을 통해 시각적으로 쉽게 Git을 관리할 수 있다. Source Control VS Code 내장 기능으로, 좌측 Source Control 탭 (초록색 박스)을 통해 이용할 수 있다. 크게 REPOSITORIES,...
VS Code로 SSH 서버에 원격 연결해 코딩할 때, 로컬 PC에서 코드를 편집하더라도 실제 파일 저장과 연산은 SSH 서버에서 수행된다. 이 프로젝트를 GitHub로 관리할 경우, Git의 입장에서는 SSH 서버가 로컬 저장소, GitHub가 원격 저장소가 된다. GitHub 계정에 SSH Key 등록 로컬 (SSH 서버)과 원격 GitHub...
매번 터미널을 통해 원격 접속해서 검은색 창에서만 코딩하기에는 불편함이 많다. 이때 VS Code의 Remote - SSH 확장 프로그램을 사용하면, 원격 서버에 있는 파일들을 마치 내 컴퓨터에 있는 파일처럼 편하게 열고, 수정하고, 실행할 수 있다. 1. ‘Remote - SSH’ 확장 프로그램 설치 먼저 로컬 컴퓨터의 VS Code에 원격 ...
SSH (Secure Shell)란? SSH는 네트워크를 통해 다른 컴퓨터에 안전하게 접속하기 위해 사용하는 통신 규약이다. 쉽게 말해서 멀리 떨어져 있는 서버를 내 노트북에서 원격으로 조종할 수 있게 해주는 보안 연결 통로라고 생각하면 된다. SSH를 통해 원격으로 접속할 때, 접속을 시도하는 쪽을 SSH 클라이언트, 접속을 받아주는 쪽을 SS...
Git이란? Git은 내 컴퓨터에서 코드의 모든 변경 사항을 기록하고 관리하는 버전 관리 소프트웨어이다. Git vs GitHub Git은 컴퓨터에 설치하는 소프트웨어다. 즉, 내 컴퓨터 (로컬)에서 작동하는 프로그램이기 때문에, 인터넷이 끊겨도 문제 없이 코드를 수정하고, 버전을 저장할 수 있다. GitHub는 온라인에 존재하는 웹 서비스로...
Tmux란? Tmux는 터미널 안에서 창을 분할하거나 병합할 수 있게 해주는 도구로, 터미널의 화면 관리자라고 생각하면 된다. Tmux는 자기 안에서 새 shell을 하나 또 띄운다. 즉, 터미널의 shell이 Tmux를 실행하면, Tmux는 그 안에서 다시 자기만의 shell을 띄우는 것이다. 따라서 Tmux 안에서 명령을 입력하면, 그 명령...
리눅스나 서버 환경에서 작업하다 보면 /data, ./data, ~/data처럼 비슷해 보이지만 서로 다른 경로 표현을 자주 보게 된다. 경로 표현 명칭 의미 실제 경로 예시 /data 절대 경로 Root 디렉토리 / 바로 아래에 ...
우리는 일반적으로 터미널에서 Bash shell을 이용해 리눅스 OS와 소통한다. 보통은 리눅스 환경에서 터미널에서 치는 모든 명령어를 묶어서 리눅스 명령어라고 부르기는 하지만, 엄밀히 말하면 Bash 명령어와 리눅스 명령어는 다르다. Bash 명령어는 shell이라는 프로그램 자체가 원래부터 할 줄 아는 내장 명령어이다. 반면, 리눅스 명령어는 ...
인덱싱과 슬라이싱 차원이 여러 개인 텐서를 인덱싱할 때 a[0, 0] 방법으로 할 수도 있고, a[0][0] 방법으로 할 수도 있다. a[0][0] 방법의 인덱싱은 먼저 a[0]을 실행하여 [0]번째 요소에 해당하는 임시 텐서를 메모리에 생성한 다음, 그 임시 객체에서 다시 [0]번째 요소를 가져온다. 즉, 불필요한 임시 메모리가 할당되고 연산이 ...