어떤 프로젝트를 실행하는 데에 필요한 라이브러리들을 버전과 함께 requirements.txt 파일에 적어두고, $ pip install -r requirements.txt 명령어를 수행하면 해당 파일 내에 적힌 라이브러리들을 일괄 설치할 수 있다. 이 명령어는 default로 PyPI url로부터 라이브러리를 설치한다. 그런데, 가끔 어떤 라이브러리는 PyPI가 아닌 특정한 url로부터 설치해야 하는 경우가 있다. 나의 경우는 paddlepaddle 라이브러리를 설치하는 과정에서, $ pip install paddlepaddle로 설치를 하면 실행 중에 에러가 나고 $ pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple 로 설치를 해야 잘..
Distinct는 생성된 응답의 다양성을 평가하기 위한 것으로, A Diversity-Promoting Objective Function for Neural Conversation Models paper에서 제안된 metric이다. 보통 input에 대해 output이 특정하게 정해져 있지 않고 다양한 output이 올 수 있는 오픈도메인 대화 task에서 평가 metric으로 자주 사용된다. paddlenlp 라이브러리를 사용해 Distinct를 측정하기 위해서 다음을 설치한다. $ pip install --upgrade paddlenlp>=2.0.0rc -i https://pypi.org/simple $ pip install paddlepaddle -i https://mirror.baidu.com/p..
paddlenlp.metrics에 있는 모듈을 사용하려는데, 항상 설치 과정에서 에러가 발생했다. 중국에서 만든 라이브러리다보니 관련 문서들이 대부분 중국어로 되어있고, 주기적인 문서 업데이트가 안 되고 있는 것 같아 정리한다. paddlenlp 공식 문서에 따르면, paddlenlp를 설치하는 명령어는 다음과 같다. $ pip install --upgrade paddlenlp>=2.0.0rc -i https://pypi.org/simple # $ pip install --upgrade paddlenlp>=2.0.0rc과 동일 문서에서는 paddlenlp만 설치하면 되는 것처럼 나와있지만 실제로 해보면 "No module named 'paddle'" 에러 메시지가 출력된다. paddle 모듈을 설치하기 ..
nn.BCELoss() label이 0 또는 1인 Binary Classification을 위해서는 nn.BCELoss()를 사용할 수 있다. 이때 주의할 사항은 다음과 같다. 1. input에 sigmoid() 함수를 씌운 후에 loss function에 넣어야한다. 2. input과 target은 동일한 shape이어야 한다. 3. input과 target의 데이터 타입이 모두 Float이어야 한다. Example: import torch.nn as nn loss_func = nn.BCELoss() sigmoid = nn.Sigmoid() input = torch.randn(size=(2, 4))# shape: (2, 4), dtype: float32 target = torch.FloatTensor(..
RuntimeError: Error(s) in loading state_dict : Unexpected key(s) in state_dict: "bert.embeddings.position_ids" GPU에서 train한 모델을 CPU에서 test하려고 하니 위와 같은 에러 메시지가 발생했다. 에러가 난 코드는 이 부분이었다. model.load_state_dict(torch.load(state_save_path, map_location='cpu')) state_dict를 불러오는 과정에서 서버 환경이 달라져서 key 값이 매칭이 되지 않아 발생한 에러다. 해결 방법은 load_state_dict()에 strict=False를 추가해주면 된다. 이를 추가해주면 state_dict를 불러올때 모든 key를..
서버 internet connection에 문제가 있을 경우 다음과 같은 에러 메시지들이 출력된다. 에러 메시지 1 'ValueError: Connection error, and we cannot find the requested files in the cached path ...' Huggingface에서 사전학습된 모델을 내려받으려 했는데, 원래는 잘 작동했지만 요즘 서버가 불안정해서 그런지 위와 같은 에러 메시지가 출력되었다. 에러 메시지 2 'fatal: unable to access 'https://github.com/~.git/': Could not resolve host: github.com' git clone 시에도 위와 같은 에러 메시지가 출력되면서 동작하지 않는다. 에러 메시지 3 'F..
Collecting package metadata (current_repodata.json): failed CondaHTTPError: HTTP 000 CONNECTION FAILED for url Elapsed: - An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, and a simple retry will get you on your way. If your current network has https://www.anaconda.com blocked, please file a support request with your network engineering team. Connection..
'main.py'라는 파일이 있을 때, 이 파일을 통째로 import하려면 다음과 같이 작성하면 된다. import main 그런데 'main 2.py'나 'main-2.py'와 같이 공백이나 특정 기호가 있는 파일은 위 방법대로 import하면 syntax error가 발생한다. 이럴 때는 importlib 모듈을 사용하면 된다. import importlib main = importlib.import_module('main 2') main = importlib.import_module('main-2')