본문 바로가기

전체 글

(63)
[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에 ..
[Python] 웹에서 파일 다운로드 (get) 파이썬으로 웹에서 파일을 다운로드 하는 방법은 여러가지가 있지만 request를 이용하면 간단하게 진행할 수 있다. Requests 설치 먼저 requests가 설치되지 않았다면 설치해준다. $ pip install requests 💡 예시 from requests import get def download(url, file_name): res = get(url) if res.status_code == 200: # res OK # 이진 모드(wb)로 파일에 저장 with open(file_name, 'wb') as file: file.write(res.content) print(f'Downloaded') else: # 다운로드 실패 print(f'Failed to download') 인자로 url과 파일..
[Python] RCSB에서 pdb 파일 다운로드하는 프로그램 # PDB ID List를 pdb.txt 파일로 입력받아 나열된 ID의 PDB파일 모두 다운로드 # 다운로드 경로 : ./PDBs 디렉토리 # 다운로드 실패 시 해당 id download_fail_list.txt에 저장 from requests import get import os def download_pdb(download_path = './PDBs', download_fail = './download_fail_list.txt'): # txt 파일에서 pdb id list 읽어오기 with open('./pdb.txt', 'r') as pdb_file: pdb_id_list = [line.strip() for line in pdb_file] # 다운로드 경로 dir 없을 시 dir 생성 if not ..
[ML] Logistic Rrgression, 로지스틱 회귀 💡 Logistic Regression 로지스틱 회귀는 일반적인 회귀 분석의 목표와 동일하게 종속 변수와 독립 변수간의 관계를 구체적인 함수로 나타낸다. 독립 변수의 선형 결합으로 종속 변수를 설명한다는 관점에서 선형 회귀 분석과 유사하나 선형 회귀 분석과 달리 종속 변수가 범주형 데이터이고 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나뉘기 때문에 일종의 분류(classification) 기법으로도 볼 수도 있다. Sigmoid Function 그림을 보면 선형회귀 방식으로는 데이터에 따른 결과를 정확히 예측하기 힘들다. 따라서 Sigmoid function을 이용해 hypothesis를 수정해준다. sigmoid function은 쉽게 말해 hypothesis의 범위를 0과 1 사이로..