프로그래밍37 Python expand() 및 repeat() PyTorch에서 모델 학습이나 텐서 조작을 하다 보면 "데이터를 특정 방향으로 늘려야" 하는 상황이 자주 발생합니다. 이럴 때 사용하는 대표적인 함수가 expand()와 repeat()입니다.두 함수 모두 텐서의 크기를 확장하는 데 쓰이지만, 내부 동작 방식은 매우 다릅니다. 본 글에서는 expand vs repeat의 차이와 각각의 쓰임새, 예제, 그리고 주의해야 할 점을 설명합니다. expand()란?expand()는 텐서의 **메모리를 복사하지 않고** 브로드캐스팅 방식으로 차원을 확장하는 함수입니다. 즉, 원래 데이터를 공유한 채로 여러 위치에서 참조만 하도록 만듭니다.import torchx = torch.tensor([1, 2, 3]) # shape: [3]x = x.unsqu.. 2025. 7. 12. Python squeeze 및 unsqueeze 함수 - view와의 차이 PyTorch에서 텐서의 차원을 다룰 때 매우 자주 사용되는 함수가 squeeze()와 unsqueeze()입니다. 이 두 함수는 텐서의 차원을 제거하거나 추가할 때 사용되며, 딥러닝 모델을 구현할 때 입력 형식을 맞추거나 특정 연산을 위해 매우 자주 등장합니다.이 글에서는 squeeze()와 unsqueeze()의 개념과 사용법을 설명하고, 다른 view 함수와의 차이도 함께 비교합니다. squeeze()란?squeeze()는 텐서에서 크기가 1인 차원을 제거하는 함수입니다. 예를 들어, 크기가 (1, 3, 1, 5)인 텐서를 squeeze() 하면 (3, 5)로 바뀝니다. 아래 예시와 같이 크기가 1인 차원이 자동으로 제거됩니다.import torchx = torch.randn(1, 3, 1, 5)p.. 2025. 7. 12. Python reshape 함수 - view, flatten과의 차이 데이터 분석이나 딥러닝을 하다 보면 다차원 배열의 형태를 바꾸는 일이 매우 빈번하게 발생합니다. 이때 사용하는 대표적인 함수가 바로 reshape()입니다. 해당 글에서는 reshape 함수의 기본 사용법과 view, flatten과의 차이를 자세히 설명드리겠습니다. reshape 함수란?reshape() 함수는 배열(array)의 데이터를 그대로 두고, 배열의 형태(shape)만 새롭게 바꾸는 함수입니다. 참고로, 이 함수는 Python의 대표적인 배열 라이브러리인 NumPy와 PyTorch에서 공통적으로 사용됩니다!import numpy as npa = np.array([1, 2, 3, 4, 5, 6])b = a.reshape(2, 3)print(b)# 출력:# [[1 2 3]# [4 5 6]] r.. 2025. 7. 11. Python ArgumentParser 정리 Python에서 스크립트를 작성할 때 사용자가 명령줄에서 인자를 입력할 수 있도록 하는 기능은 매우 유용합니다. 이때 사용하는 표준 모듈이 바로 argparse이며, 그 핵심 클래스가 ArgumentParser입니다. 이 글에서는 ArgumentParser의 내용을 정리하였습니다.ArgumentParser란 무엇인가요?ArgumentParser는 Python 내장 모듈인 argparse의 핵심 클래스입니다. 이 클래스는 명령행에서 입력된 인자(arguments)를 해석(parse)하고, 프로그램에서 이를 쉽게 사용할 수 있게 도와줍니다. 즉, 사용자가 명령줄에서 어떤 값을 입력하면 이를 자동으로 분석해서 변수처럼 사용할 수 있도록 해주는 도구입니다.예를 들어 다음과 같이 실행하는 스크립트를 만들 수 있습.. 2025. 7. 10. [Effective C++ 정리 #19] 클래스 설계는 타입 설계로 접근하라 [Effective C++ 정리 #19] 클래스는 타입이다 C++에서 class를 만든다는 것은 단순히 데이터와 함수들을 묶는 것이 아닙니다. class는 곧 새로운 타입(type)을 정의하는 행위이며, 우리는 타입 설계자(type designer)가 됩니다. 해당 아이템에서는 C++ 클래스 설계를 '타입 시스템 강화'라는 관점에서 바라보며, 좋은 타입을 설계하기 위해 꼭 고민해야 할 10가지 질문을 제시합니다.좋은 타입이란 어떤 것인가?좋은 타입은 다음과 같은 특징을 갖습니다:자연스러운 문법: 직관적인 인터페이스로 사용자가 쉽게 사용할 수 있어야 함예측 가능한 의미: 어떤 연산이 어떤 결과를 만드는지 명확하게 알 수 있어야 함효율적인 구현: 지나치게 무겁지 않고, 가능한 한 가볍고 빠르게 동작해야 함반.. 2025. 7. 9. Python pip란? pip 사용법 Python pip 사용법 정리Python의 대부분의 라이브러리는 pip이라는 도구를 통해 설치하고 관리할 수 있습니다. pip은 "Python Installer Package"의 약자로, PyPI(Python Package Index)에서 패키지를 검색, 다운로드, 설치, 제거, 업그레이드하는 기능을 제공합니다. 이번 글에서는 pip의 주요 명령어를 중심으로, **설치된 패키지의 버전 확인, 제거, 업그레이드, 다운그레이드**까지 전반적인 사용법을 정리합니다.pip 버전 확인 및 업그레이드pip이 제대로 설치되어 있는지 확인하려면 다음 명령어를 입력합니다:pip --version pip 자체를 최신 버전으로 업그레이드하려면 다음 명령어를 사용합니다:python -m pip install --upgrad.. 2025. 7. 4. 이전 1 2 3 4 5 ··· 7 다음