"더러운 python 해결책 모음"의 두 판 사이의 차이

DM wiki
둘러보기로 이동 검색으로 이동
잔글
잔글
 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
50번째 줄: 50번째 줄:
*** conda env update -f environment.yml
*** conda env update -f environment.yml
** 환경 뽑아내기
** 환경 뽑아내기
*** conda env export --from-history > environment.yml
*** conda env export --no-build > environment.yml
** 환경 지우기
** 환경 지우기
*** conda env remove -n myenv
*** conda env remove -n myenv
<br />
* PyCharm에서 환경변수 등을 쉘스크립트로 설정한 후 python 실행하게 하기
** Docker 이미지 이상하게 만든 이미지등에서 entrypoint.sh에서 환경 설정하고 실행햐는데, 이런 경우 pycharm에서 바로 python 선택하면 안 된다. ㄱ ㅐ 짜증
** 쉘스크립트 맨 밑에 python "$@" 이라고 쓰고, 이 .sh 파일을 remote python interpreter로 지정하면 된다.

2020년 5월 23일 (토) 17:20 기준 최신판

while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt
  • gpu 메모리 먹는 아가 찾기
import torch
import gc
tensors = []
tensor_sizes = []
# torch tensor objectを全部集める
for obj in gc.get_objects():
   try:
       if torch.is_tensor(obj) or (hasattr(obj, 'data') and torch.is_tensor(obj.data)):
           if str(obj.device) != 'cpu':
               numel = obj.numel()
               if obj.dtype == torch.float32:
                   numel *= 4
               elif obj.dtype == torch.int64:
                   numel *= 8
               elif obj.dtype not in dtypes:
                   dtypes.append(obj.dtype)
                   print(obj.dtype)
                   numel *= 8
               tensor_sizes.append(numel)
               tensors.append(obj)
   except:
       pass
# 大きさ順にsort
size_index = sorted(range(len(tensor_sizes)), key=lambda k: tensor_sizes[k], reverse=True)
# 上位5個のtensorの大きさ
for i in range(0, 20):
   print(f"{tensors[size_index[i]].shape}, {tensor_sizes[size_index[i]] / 1024} KBytes")
   # print(tensors[size_index[i]])
# tensor 全体の大きさ(bytes)
total_sum = 0
for tensor_size in tensor_sizes:
   total_sum += tensor_size
print(f"{total_sum / (1024 * 1024)} MBytes")
  • conda 관련
    • 환경 만들기
      • conda create -n myenv -c intel python=3.7 numpy scipy mkl
      • conda env create -f environment.yml -n myenv
    • 환경 업데이트하기
      • conda env update -f environment.yml
    • 환경 뽑아내기
      • conda env export --no-build > environment.yml
    • 환경 지우기
      • conda env remove -n myenv


  • PyCharm에서 환경변수 등을 쉘스크립트로 설정한 후 python 실행하게 하기
    • Docker 이미지 이상하게 만든 이미지등에서 entrypoint.sh에서 환경 설정하고 실행햐는데, 이런 경우 pycharm에서 바로 python 선택하면 안 된다. ㄱ ㅐ 짜증
    • 쉘스크립트 맨 밑에 python "$@" 이라고 쓰고, 이 .sh 파일을 remote python interpreter로 지정하면 된다.