어느날과 다름없이 pickle 파일형식을 가진 데이터를 받아서 실험을 하려고 하던 그때, 갑자기 _pickle.UnpicklingError: invalid load key, 'v' . 라는 메세지가 뜨며 데이터를 못부르는 거다. 오류는 아래와 같다.
해당 오류는 repo를 git clone할 때, 모델 내의 파일의 사이즈가 너무 커서 이를 text file로 대체했기 때문에 key값을 불러오지 못해서 생기는 오류이다. 예를 들면 pickle file이 원래는 400MB정도 하는데 text file로 대체되었기 때문에 아래와 같이 1KB 정도의 적은 용량으로 표기되어있을 것이다.
이러한 이슈는 git-LFS로 올린 레포지토리를 그냥 받았기 때문에 생긴다. 대용량의 데이터를 레포지토리에 올릴 때, 용량이 너무 크기때문에 그냥 push가 안되어서 LFS (large file system) 로 올리게 된다. 앞서 봤던 이슈없이 git-LFS로 올린 repository를 정상적으로 받아사용하고 싶다면, large file을 다운로드하기 위한 git extension인 git-lfs를 install하고 그 후 레포를 받으면 된다. 매우 간단하다.
git-lfs Installation
먼저 git-lfs extension을 설치한다. (sudo 권한이 없다면 sudo 빼고 해보길)
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt install git-lfs
# sudo 권한이 없을 경우
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
apt install git-lfs
Repository(레포지토리) clone
git-lfs를 install하기 전의 repo에는 lfs가 적용되지 않기 때문에 이전에 받은 repo는 지우고 다시 git clone하고 git lfs pull을 해서 large file을 풀어주면 끝!
git clone "url"
git lfs pull
Reference
'Utils' 카테고리의 다른 글
np.savez_compressed로 np.array 여러개 한번에 저장 (0) | 2023.06.23 |
---|---|
Stochastic Differential Equation (SDE) 자료 공유 (0) | 2022.02.08 |
Overleaf로 논문쓸 때 필요한 것들: LaTex 표 만들기/수식 편집기/ChatGPT (2) | 2021.03.12 |
Windows terminal 설치 / 설정 변경하기 / 다양한 shell 추가하기 (anaconda prompt, cmder) (0) | 2021.01.20 |
명령 프롬프트(cmd)에서 특정 확장자 파일리스트 txt 파일로 저장하기 (0) | 2020.11.09 |