분류 전체보기 310

[Python] ConnectionResetError (request)

크롤링을 하다 보면 아래와 같이 '원격 호스트에 의해 강제로 끊겼습니다'라는 에러를 볼 때가 있다. 이는 requests 모듈에서 url을 가지고 올 때 발생하는 오류로 header를 추가하는 방식으로 간단하게 해결이 가능하다. header는 윈도우의 경우 찾고자 하는 url에서 F12를 누르고 Network로 들어간 후 하단에 보면 'user-agent'를 복사해서 넣어주면 끝이다. url = f'target_url' headers = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'} requests.get(ur..

Python 2022.04.27

Graph Neural Network 시작하기

GNN은 Graph Neural Network의 약자로 그래프 신경망이다. 일단 GNN을 알기 위해서는 당연히 그래프가 어떤 것인지 알고 있어야 한다. 그래프는 $G = (V, E)$로 나타내며 V는 꼭짓점(vertex)의 집합, E는 에지(edge)의 집합이다. 에지 집합 중 하나인 $e=u,v$는 $u$와 $v$를 연결해주는 연결 고리를 의미하며 $u,v$는 꼭짓점이다. 이때 $u,v$를 이웃이라 부르고 두 꼭짓점은 인접하다고 한다. 에지에는 방향이 있을 수도 있고 없을 수도 있는데 그래프의 모든 에지에 방향이 존재한다면 이를 유향 그래프(directed graph), 방향이 없는 경우에는 무향 그래프(undirected graph)라고 부른다. 꼭짓점 $v$의 차수는 $v$에 연결된 에지의 수를 의..

[Pytorch] Pytorch 에서 모델 요약 보기 with torchsummary

tensorflow 같은 경우에는 model.summary()를 통해서 간편하게 모델의 정보를 확인할 수 있다. 그렇다면 PyTorch에서는 불가능할까? 아니다!! Torch도 torchsummary를 지원해주고 있기에, torchsummary를 설치하면 확인할 수 있다. 확인하기에 앞서 우리는 이런 구조의 간단한 CNN을 만들 수 있을 것이다. 그런다음 아래의 코드를 실행하면 tensorflow의 model.summary()와 유사한 그림을 가지고 올 수 있다. from torchsummary import summary​ 각 layer의 output shape와 각 parameter에 대한 정보도 다 나온다. 또한 용량까지 나오니 엄청나게 좋다..! 한가지 단점이 있다면 아래와 같이 model의 inp..

Python/Pytorch 2022.04.18

[WSL2] Ubuntu 설치시 '0xc03a001a' 오류

윈도우 환경에서 우분투를 설치한 후 실행 시 '0xc03a001a' 오류가 뜰 때가 있다. 이 경우에는 C:/Uses/'UserName'/AppData/Local/Packages 폴더로 접근한 후 'Canonical~~ubuntu~~'로 되어 있는 폴더를 찾으면 된다. 이때 AppData 폴더가 없을 땐 숨긴 폴더를 찾아보면 있을 것이다. 'Can~~' 폴더 우클릭 -> 속성 -> 고급 -> '내용을 압축하여 디스크 공간 절약' 해당 문구의 체크박스를 해제한 후 확인하고 실행하면 정상적으로 실행된다. 이제 ubuntu에 지정할 이름과 패스워드를 입력하면 완료!

Linux 2022.04.18

Rich feature hierarchies for accurate object detection and semantic segmentation (CVPR'14)

R-CNN을 제안한 논문인 Rich feature hierarchies for accurate object detection and semantic segmentation (2014) 에 대해 리뷰를 하고자 한다. R-CNN이 등장하기 이전에는 SIFT[논문], HOG[논문] 을 활용한 방법으로 Object Detection을 하고 있었으나 몇 년 간 성능 개선을 보이지 못하고 있었다. R-CNN은 기존 모델의 성능을 31.4% 만큼 개선함으로써 엄청난 성능을 보여주었다. (24.3% $\rightarrow$ 53.7%) 기존의 모델들은 물체가 있을 만한 곳을 하나씩 탐색하는 방법인 Sliding Window 을 사용해 물체를 탐지했는데, 이 방식은 크기가 고정되지 않아 여러 크기로도 순차적으로 탐색해야..

[python] os, os.path로 파이썬 경로 다루기

Contents 로컬 환경에서 예제 csv 파일을 다룰 때는 본인이 위치해있는 폴더에 csv 파일을 같이 놔두고 분석을 수행하기에 경로 설정 문제를 겪을 일이 거의 없다. 하지만 협업을 진행할 때에는 사람마다 파일의 위치가 다르기에 모든 환경에서 돌아가도록 절대 경로, 상대 경로 등 경로를 제대로 지정해주어야 한다. 이번 글에서는 python 패키지 중 os, sys로 경로를 설정하는 방법에 대해서 다루어볼 것이다. os os는 경로를 조작할 때 많이 사용하는 모듈이다. os 모듈 중에서 가장 많이 사용되는 함수에 대해서 다루어보자. os.environ : 환경 확인 os.environ은 환경 변수들을 확인할 수 있는 함수이다. 환경 변수에는 JAVE_HOME, HADOOP_HOME, HOMEPATH, ..

Python 2022.04.01

[Statistics] 구조방정식모델(structural equation model)의 모든 것

Contents 통계 분석의 꽃은 바로 구조방정식모델이라고 할 수 있다. 구조방정식 모델은 직접적인 측정이 어려운 잠재변수(latent variable) 간의 영향관계를 분석하기 위한 통계분석 기법이다. 기존의 회귀 분석의 경우 독립 변수(x)를 기반으로 분석을 수행하기에 잠재변수를 다룰 수 없지만, 구조방정식은 회귀분석과 달리 잠재변수를 다룰 수 있고, 여러 변수 간의 영향관계를 동시에 분석할 수 있다는 장점이 있다. 다시 말해 요인분석(factor analysis)과 회귀분석(regression analysis)의 특성을 결합한 하이브리드 기법이라고 할 수 있다. 구조방정식은 잠재변수를 측정하는 측정모델(measurement model)과 측정된 잠재변수 간의 인과관계(causal relationsh..

[Docker] ubuntu에서 jupyter notebook 시작하기

window 환경을 가지고 있는 사람이라면 간혹가다 ubuntu 환경에서 작업을 해야할 필요가 있다. 이때 기존에 사람들이 이쁘게 만들어놓은 환경을 사용해도 되지만 우리가 한 번 처음부터 만들어보자. 본인은 window를 사용하고, Linux는 다루어본 적 없어서 이 과정이 매우 생소해 많은 도움이 되었다. 일단 Docker에서 기본 ubuntu 환경을 받아오자. docker pull ubuntu 별도의 ubuntu 버전을 설정하지 않는다면 가장 최신의 버전을 불러온다. 제대로 설치가 되었는지 확인하자. docker images 우리는 이전에 받아온 이미지로 컨테이너를 생성하는 방법도 배웠다. 또한 포트를 연결하는 방법에 대해서도 다루어보았다. 우리 컴퓨터의 포트와 컨테이너의 포트를 연결시켜줌으로써 우리..

Docker 2022.03.28

[Books] Weighted Embedding

가중 임베딩(Weighted Embedding)은 단어 임베딩을 문장 수준 임베딩으로 확장하는 방법이다. 제안한 논문에서는 문서 내 단어의 등장은 저자가 생각한 주제에 의존한다고 가정한 후 분석을 수행한다. 즉, 주제에 따라 단어의 사용 양상이 달라진다는 것이다. 이를 위해 주제 벡터(Discourse vector) $\text{c}_s$라는 개념을 도입했다. 본 논문에서는 $\text{c}_s$가 주어졌을 때 어떤 단어 $w$가 등장할 확률을 다음과 같이 정의했다. \[ \text{P}(w|\text{c}_s) = \alpha \text{P}(w) + (1-\alpha) \frac{\exp(\tilde{c}_s \cdot \text{v}_w)}{\text{Z}}\] \[ \text{where} \ \t..

반응형