본문 바로가기

전체 글

(66)
[Docker] 컨테이너에 ssh로 접속하기 원격으로 개발하기 위해 필수적으로 필요하다고 생각하는 ssh 접속에 대해 정리해보려 한다. 사실 이전에 동일 내용으로 작성하였으나 너무 빈약하다고 생각되어 다시 정리하는 것이 낫다고 판단했다... 먼저 필자는 다음과 같은 환경에서 세팅을 진행중이다. OS : Windows 10WSL2 Ubuntu 20.04dockerDesktopWSL을 이용해서 작업하고 있기 때문에 몇가지 작업을 먼저 해주어야 했다.Port Forwardinghttps://m.blog.naver.com/seongjin0526/221778212779 https://tttsss77.tistory.com/155 **https://codeac.tistory.com/118**작업 스케줄러 설정작업 스케줄러를 설정하여 포트를 열어주는 작업을 하였..
[Javascript] Checkbox 하나만 선택되도록 설정 연구실 과제를 맡아 하던 중 web 개발까지 맡게된.. 사연이 있어 다시 js에 손대게 되었다..Checkbox를 활용할 일이 많아 하나씩 알아보도록 하자.Checkbox는 주로 여러 항목들을 선택할 때 사용된다. 추후에 다중 선택으로 기능을 추가하게 될 것 같아 checkbox로 기능을 구현하기로 했다. 그러나 현재는 하나의 Checkbox만 필요하기에 js를 이용해 하나만 선택되도록 설정하였다.Javascriptjs 코드는 아래와 같다. export가 필요하다면 진행해주면 된다.function checkOne(element) { const checkboxes = document.getElementsByName("checkbox"); checkboxes.forEach((cb) => { ..
Docker Container ssh 설정 Port Forwardingcontainer에서 기본적으로 ssh에 사용할 port를 forwarding 해줘야 함 작업 스케줄러 설정*.ps1 파일 생성윈도우 작업 스케줄러 설정(컴퓨터 시작 시 실행됨)wsl-connect-external.ps1$remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '"$found = $remoteport -match '\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}';if( $found ){ $remoteport = $matches[0];} else{ echo "The Script Exited, the ip address of WSL 2 cannot be found"; exit;}#[Ports]..
[Git] 관계 없는 두 브랜치 병합 github에 이전에 작업한 코드를 업로드하기 위해 새 레포지토리를 생성하고 푸쉬했으나 관계 없는 커밋 내역의 병합을 거부합니다 라는 메시지와 함께 병합에 실패했다.. 원인은 레포지토리에 readme, License 등을 미리 생성해서 그런 것으로 추측된다. 사실 푸쉬는 가능했으나 브랜치가 분리되어 있고 두 브랜치를 merge할 수 없었다. (--force 옵션으로도..) github에서도 두 branch가 관계가 없다라는 메시지와 함께 pull&request 생성이 불가했다. 해결 해결 방법은 간단했다. 관계 없는 history에 대해 허용해주는 옵션을 사용하면 되는데 아래와 같다. git merge main --allow-unrelated-histories 나는 main을 master에 병합시켰다. ..
[Conda] global package를 conda env에서 사용하기 Anaconda나 miniconda를 새로 설치하면서 기존에 pc에 설치됐던 python이나 기타 패키지들을 그대로 사용하고 싶은 경우가 있다. 기존에 python을 이용하고 있는 상태였다면 conda를 새로 설치해 environment를 구성하게 되면 꽤 많은 패키지들이 중복으로 설치되게 되기 때문에 용량이 낭비되는 문제도 존재한다. 여러 방법이 존재하겠지만 나는 Symbolic Link를 설정해 해결하였다. 간단히 말하면 링크를 생성해서 global에 설치된 package들을 conda의 env가 참조하여 사용가능하도록 하는 것이다. 용어의 정의를 설명하기 위한 글은 아니기 때문에 빠르게 설정 방법만 알아보자. Symbolic Link 설정 # 경로 내의 모든 패키지에 대해 link 생성 ln -s ..
디스크 파티션 합치기(파티션 옮기기) PC를 배정받아 사용하는 과정에서 disk용량 문제가 존재했다. trouble shooting 과정을 글로 남겨볼까 한다. 보통 디스크 파티션은 디스크 관리 페이지에서 쉽게 해결이 가능하다. 위 사진처럼 C드라이브를 우클릭해서 파티션을 나눌 수도, 할당되지 않은 빈 공간이 있다면 이 역시 우클릭을 통해 D드라이브 등 다른 문자의 드라이브를 할당하거나 C드라이브에 합칠 수도 있다. 그런데 나의 경우는 복구 파티션이 정상 파티션 사이에 위치했다... 사진을 보면 100GB의 할당되지 않은 빈 파티션이 존재한다. 기본적으로 파티션을 합치려면 두 파티션이 붙어있어야 가능한데 나의 경우에는 두 파티션이 복구 파티션을 사이에 두고 분할되어 있다. 이렇게 되면 디스크 정리창에서는 파티션 합치기가 불가능하다. 그래서 ..
[DL] RNN, Recursive Neural Network RNN이란? RNN은 Recurrent Neural Network의 약자로 순환 신경망을 의미하며 hidden layer에서 나온 값이 다시 hidden layer로 돌아가 연산을 수행하는 순환 구조를 띈다. CNN은 hidden layer의 결과가 출력층 방향으로 이동하지만 RNN은 다시 layer로 순환한다는 차이점이 있다. RNN은 시계열 데이터나 자연어와 같은 데이터 처리를 위해 설계되었으며 시간 별로 같은 weight를 공유한다는 것이 특징이다. 구조 위 그림은 RNN의 순환 구조를 나타낸 그림이다. 그림에서 RNN계층은 모두 같으며 시점만 다르다고 할 수 있다. 입력 x1…xt를 순차적으로 입력했을 때 결과 h0…ht가 출력되고 출력을 시점 k에서의 은닉 상태라고 한다. 이처럼 출력이 같은 계..
[DL] CNN, Convolution Neural Network CNN이란? CNN은 Convolution Neural Network의 약자로 합성곱 신경망을 이용한 딥러닝 기법이다. DNN에서 이미지, 영상 등의 데이터 처리 시 생기는 문제점들을 보완하기 위해 인간의 시신경을 모방한 방법으로 Vison 분야에서 우수한 성능을 보인다. 구조 CNN은 완전 연결 계층(Fully Connected Layer, FCL)이 아닌 합성곱(Convolution)층과 풀링(Pooling)층으로 구성되어 있다. CNN의 구조는 보통 아래와 같다. Convoltion Convolution은 Input에서 stride값 만큼 filter(kernel)를 이동시켜 연산을 진행한다. 이때 Input의 data 손실을 막기 위해 padding을 설정하기도 한다. 아래 그림처럼 input에 ..