Processing math: 100%
본문 바로가기

Data science/Python27

pytorch register_buffer 설명 및 사용 방법 요약register_buffer는 모델의 상태(state)로서 관리하고 싶은 텐서를 등록하는 데 사용됩니다. 즉, 이 메서드는 state_dict에 포함되어서, torch.nn.Module.state_dict()에 함께 저장되어, torch.save을 할 때, 함께 저장됩니다. 또한, register_buffer으로 등록된 텐서는 기본적으로 기울기를 계산하지 않습니다. 기능 1. state_dict을 통해 모델을 저장/로드 할 때, 함께 포함되도록torch.nn.Module로 딥러닝 네트워크를 구성하고, 필요한 텐서(non-trainable)도 함께 저장이 가능합니다.아래의 예시를 살펴보겠습니다.9번줄:  self.register_buffer("running_mean", torch.zeros(10))으로.. 2024. 9. 27.
Coroutine: python 정리 기본개념: 코루틴, 메인루틴, 서브루틴코루틴을 이해하기위해서는 메인루틴과 서브루틴을 이해하고 있으면, 더 쉽게 이해가 됩니다. 이 3가지 루틴을 정리하면 아래와 같습니다.메인루틴(Main routine): 메인루틴은 보통 프로그램의 시작점이며, 프로그램의 주 흐름을 담당합니다. 메인루틴은 일련의 작업을 수행하고 다른 서브루틴이나 코루틴을 호출할 수 있습니다. 프로그램이 시작되는 메인코드라고 생각하면 됩니다.서브루틴(subroutine): 메인루틴에서 호출되는 함수, 또는 서브루틴에서 호출되는 함수들을 의미합니다. 즉, 다른 루틴에서 호출되는 경우를 의미합니다.코루틴(Coroutine): 메인루틴에서 호출되지만, 코루틴은 실행되는 도중에, 일시중단되어 다시 메인루틴으로 전환되었다가 다시 코루틴.. 2024. 7. 17.
numpy array의 stride란? 요약딥러닝에서의 stride: 컨볼루션 연산에서 커널의 이동 범위를 나타냅니다.numpy 배열에서의 stride: 배열의 각 차원에서 다음 요소로 이동하기 위한 메모리 상의 바이트 수를 나타냅니다. 보통 딥러닝하시는 분들이면 딥러닝의 CNN layer에서 stride을 들어보셨을 텐데, numpy 에서의 stride가 어떤 개념인지 정리해보겠습니다.numpy 배열에서의 Stride: 배열의 각 차원에서 다음 요소로 이동하기 위한 메모리 상의 바이트 수numpy 배열에서의 stride는 메모리에서 다음 요소로 이동하기 위해 건너뛰어야 하는 바이트 수를 나타냅니다. numpy 배열은 연속된 메모리 블록을 사용하여 데이터를 저장하며, stride는 배열의 각 차원을 따라 이동할 때의 바이트 수를 지정합니다. .. 2024. 7. 10.
python with 구문 & context manager if else구문이 아닌, 구문에서의 else의 사용1. for - else 구문:for loop가 정상적으로 완료되면 else 구문이 실행됩니다. break으로 중단되는 경우 else 블록은 실행되지 않습니다.numbers = 1,2,3,4,5for number in numbers: if number == 3: print("Found 3!") breakelse: print("3 is not in the list.") 2. try-except-else:try-except에서 예외가 발생하지 않을 때, else 블록이 실행됩니다.이거 왜 쓰냐는 질문이 종종있는데요. 아래의 예시를 들어보겠습니다. 아래의 try-except구문에서 FileNoteFoundErro.. 2024. 6. 19.
python 매직메서드 (__repr__, __str__, __slots__) 객체표현: __repr__, __str__ 차이파이썬에서 객체의 설명을 보려면, repr(), str()함수가 필요합니다. 이 두 함수는  _repr__str_이 정의되어야 확인할 수 있습니다.  이 두 함수의 차이점은 아래와 같습니다.공통점두 함수 모두 반환되는 형태가 str 입니다.차이점repr, _repr_은 주로 개발자을 위해 사용되며, 내부 디버깅을 위해 사용되는 표현방식입니다. 주로 obj을 직접 호출할 때 사용되고, 문자열 그 자체로 객체가 생성되도록 작성을 합니다.str, _str_은 주로 사용자를 위해 사용되며, 보기쉬운 형태로 전환하거나 타입 캐스팅을 하는 용도로 사용됩니다. 또한, _str_이 정의되어있지 않다면, `__re.. 2024. 6. 3.
파이썬 바이트 표현 (bytes, bytearray) 개념정리코드 포인트(code point): 각 유니코드 문자에는 고유한 코드포인트(숫자)가 할당되어있습니다. 이 유니코드 하나하나에 매핑되는 숫자를 코드포인트라고합니다. 1:1로 매핑되어있고, 코드포인트를 어떤 인코딩 방식을 하냐에 따라, 문자열이 달라질 수 있습니다.인코딩: 코드포인트를 바이트 시퀀스로 변환하는 규식을 일컫습니다.디코딩: 바이트 시퀀스를 코드포인트로 역변환 하는 규칙을 일컫습니다유니코드(Unicode): 모든 문자를 컴퓨터에서 일관되게 표현하고 다루기 위한 국제 표준입니다. 모든 문자열은 코드포인트를 이용하여, 1:1 매핑되어있습니다. 그리고 유니코드로 표현되는 경우 "U+"라는 접두사를 사용합니다. 코드포인트: 문자와 1:1로 매핑하는 숫자코드포인트는 문자와 1:1로 매핑되는 숫자입니.. 2024. 5. 7.