전체 글

신경망의 특정 레이어를 삭제하려 할 때, model.state_dict()로 pre-trained model을 받아오고, 레이어를 삭제하려는 도중 발생한 에러. Dictionary 가 반복 실행(즉, for문) 안에서 변경되면서 발생하는 에러. For문 입장에서는 삭제한 key 'rec_head.encoder.emb'가 있어야 하는데 중간에 변경되서 없어졌다고 경고를 보내는 꼴이다. for key, value in checkpoint['state_dict'].items():# For문 하단의 삭제는 문제가 없는데, 다음 iteration을 돌 때 에러가 발생 if 'rec_head.encoder.emb' in key: checkpoint['state_dict'].pop(key)# 삭제까지는 정상적으로 되..
참고 블로그 OpenCV - 10. 히스토그램과 정규화(Normalize), 평탄화(Equalization), CLAHE 이번 포스팅에서는 히스토그램에 대해 알아보겠습니다. 이번 포스팅 역시 '파이썬으로 만드는 OpenCV 프로젝트(이세우 저)'를 정리한 것임을 밝힙니다. 코드: github.com/BaekKyunShin/OpenCV_Project_Python/tr bkshin.tistory.com https://engineer-mole.tistory.com/12 [python/OpenCV] 이미지 처리 예제 Q21~Q25 문제 링크 https://github.com/yoyoyo-yo/Gasyori100knock/tree/master/Question_21_30 yoyoyo-yo/Gasyori100knoc..
https://stackoverflow.com/questions/47432168/taking-subsets-of-a-pytorch-dataset Taking subsets of a pytorch dataset I have a network which I want to train on some dataset (as an example, say CIFAR10). I can create data loader object via trainset = torchvision.datasets.CIFAR10(root='./data', train=True, ... stackoverflow.com Epoch에 따라 홀수, 짝수에 맞춰서 DataLoader 내 Random Sampling을 수행하며, 전체 데이터를 절반으로 ..
# 현재 위치에서 디렉토리(폴더) 개수 세기 ls -l | grep ^d | wc -l # 현재 위치에서 파일 개수 세기 ls -l | grep ^- | wc -l # 현재 위치에서 하위 파일 개수 세기 find . -type f | wc -l 출처 : https://lee-mandu.tistory.com/420 리눅스 파일 개수 및 디렉토리(폴더) 개수 세기 간단한 명령어만 적어두기 위하여 포스팅합니다. 현재 위치에서 디렉토리 즉 폴더 개수 세기 ls -l | grep ^d | wc -l 위의 명령어를 실행 시키면 현재 위치의 디렉토리(파일) 개수를 체크 할 수 있습 lee-mandu.tistory.com 간혹 여러 폴더에서 개수를 세고싶을때는 다음 bash script 코드로 확인할 수 있다. fin..
https://zzsza.github.io/development/2020/01/06/jupyter_notebook_voila_dashboard/ Voila를 사용해 Jupyter Notebook Dashboard 만들기 Jupyter notebook에서 voila를 사용해 대시보드 만드는 방법에 대해 작성한 글입니다 R의 Shiny처럼 Python Jupyter Notebook에선 Voila를 사용하면 빠르게 웹에 대시보드를 띄울 수 있습니다 zzsza.github.io
import torchvision # imgs shape = torch.Size([1, 3, 1056, 736]) torchvision.utils.save_image(imgs,'./test.jpg') torchvision 내 utils.save_image 함수 적용 import cv2 cv2.imwrite('./test.jpg', imgs) cv2 내 imwrite 함수 적용 from PIL import Image # 이미지 열기 im = Image.open('python.png') # 이미지 크기 출력 print(im.size) # 이미지 JPG로 저장 im.save('python.jpg') PIL 객체 내 save함수 사용
모델 내 requires_grad를 다 False로 뒀는데, 이상하게 앞단 모델이 엉망이 되었다. 초기모델과 가장 최근까지 학습했던 모델 내 파라미터를 하나씩 비교하던 중, 다음과 같이 backbone 안에 있던 batchnormalization 값은 다 변경되고 있었던 것을 발견했다. backbone.layer1.0.bn1.running_mean backbone.layer1.0.bn1.running_var backbone.layer1.0.bn1.num_batches_tracked 이상 3가지 값들 위주로 변경되고 있었으며, 이 값들은 일반적인 layer 내 파라미터들처럼 optimizer가 loss로 update하는 값이 아니라고 한다. 해당 값들은 forward 과정에서 버퍼에 저장되어 변동되는 값들..
Anaconda는 여러 Python 가상 환경을 구성해서 사용하고 만들 수 있는 것이 큰 장점이다. Linux Windows 간 호환은 잘 안되지만, 같은 OS라면 공유하는 것이 크게 어렵지 않다. 1. Export(가상환경 파일 만들기) 현재 사용하고 있는 가상환경을 activate한 상태 기준으로, 아래 명령어로 yaml파일을 만들어준다. conda env export > [$ENVIRONMENT_NAME].yaml ex) conda env export > test_env.yaml 생성된 yaml 파일은 다음과 같이 가상환경 이름과 채널, 필요한 디펜던시(라이브러리) 목록이 나열되어 있다. 2. Import(가상환경 생성) 이제 앞에서 만든 yaml을 통해 새로운 환경으로 파일을 가져오자. CUDA,..
RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn 전체 네트워크 모델 중, 일부 레이어만 requires_grad = True로 셋팅했는데, 특정 구간에서 loss.backward()를 수행할 때, 다음과 같은 에러가 난다. ''' . . . 앞단 : LOSS 계산하는 라인 . . ''' optimizer.zero_grad() loss.backward() #>>여기서 에러 발생 optimizer.step() 실제 해당 구간에서 loss를 print해보면 단순한 cuda Tensor가 나오는데, print(loss) >>> tensor(1.5298, device='cuda:0') 이 사이트에서 loss에도..
Js.Y
Y초보프로그래머