반응형

Python 411

[Pytorch] 원소 반복 텐서 확장 : expand, expand_as, repeat 사용법

torch expand, expand_as, repeat 함수 차이 비교 이번 글에서는 파이토치에서 원소를 반복하여 텐서의 차원을 확장하는 함수들인 expand, expand_as, repeat 함수들의 사용법 차이를 분석해보는 시간을 가져보도록 하겠습니다. 파이토치 expand 함수 expand() 메소드는 원하는 차원 크기를 input으로 받아 텐서의 값들을 뒤쪽 axis에서 반복하여 확장된 차원의 반복 텐서를 생성합니다. 반복을 원하는 텐서의 size가 (x, y, z) 식이라면, input으로는 (a, b, c, ... , x, y, z) 처럼 마지막 axis들의 크기는 input으로 넣은 차원과 동일한 크기여야 합니다. 첫 번째로, 1차원 텐서의 확장 예시입니다. import torch x = ..

Python/Pytorch 2022.01.26

[Pytorch] squeeze와 unsqueeze 함수 사용법 정리

torch squeeze vs unsqueeze 이번 글에서는 파이토치에서 squeeze와 unsqueeze 함수의 용도와 사용 예시에 대해서 살펴보도록 하겠습니다. 이 글은 파이토치의 squeeze, unsqueeze 함수에 대한 공식 문서를 바탕으로 작성되었습니다. Pytorch squeeze 함수 사용 방법 참고로, 지난 번에 numpy의 squeeze 함수 사용법에 대하여 다룬 글이 있었는데, torch 라이브러리에서도 원리는 거의 비슷합니다. [Numpy] np.squeeze 함수 사용법과 의미 파이썬 넘파이 np.squeeze() 함수 : 크기가 1인 axis 제거 이번 시간에는 파이썬 넘파이 배열에서 크기가 1인 추가 axis를 제거하는 np.squeeze 함수의 사용법과 의미에 대해서 간단..

Python/Pytorch 2022.01.25

[Matplotlib] 파이썬 그래프 범례(legend) 크기, 위치, 글자 색 설정법

plt legend 설정 방법 정리 이번 글에서는 파이썬 matplotlib 라이브러리에서 그래프의 범례를 설정하는 기본적인 방법과 범례의 크기, 위치, 글자 색 등의 속성을 정하는 방법에 대해서 다루어보도록 하겠습니다. 파이썬 그래프 범례 설정법 2가지 첫 번째로 그래프 내에 범례를 표시하는 방법은 그래프를 그리는 과정 내에서 label 인자로 해당 그래프의 범례 텍스트를 미리 지정한 뒤, plt.legend() 메소드를 실행시켜 주시면 지정했던 범례 텍스트들이 그래프를 그린 순서대로 출력됩니다. import matplotlib.pyplot as plt import numpy as np x = np.linspace(-2 * np.pi, 2 * np.pi, 100) # 그래프 내에 label 인자로 범례..

Python/Matplotlib 2022.01.24

[Pytorch] 쿠다 버전 확인, 파이토치 버전 체크, 업데이트 방법

CUDA 및 파이토치 버전 확인 및 관리 Pytorch를 사용하는 경우 CUDA 버전을 확인하고, 쿠다와 호환이 잘 되는 파이토치 버전으로 변경해주어야 하는 경우가 있을 수 있습니다. 이번 글에서는 간략하게 파이토치를 최적으로 사용하기 위한 환경에 대해 점검하고 버전을 관리하는 방법을 말씀드려보도록 하겠습니다. 쿠다 버전 확인법 CUDA 버전을 확인하는 방법은 명령 프롬프트에 $ nvcc --version를 입력하시거나, ipynb 파일의 셀 내에 !nvcc --version를 입력해주시면 됩니다. 출력 결과에서 마지막 줄의 숫자를 확인해보시면 됩니다. 예시로 코랩 환경에서 CUDA의 버전을 조회해본 결과, 11.1 version을 사용하고 있는 것을 알 수 있었습니다. 혹은, 아래의 pytorch ve..

Python/Pytorch 2022.01.23

[Tensorflow] 텐서플로우 버전 확인, 업그레이드, 다운그레이드 방법

텐서플로우 버전(version) 확인 및 변경 텐서플로우(Tensorflow)를 사용하시다 보면 버전 호환성 문제로 버전을 업그레이드 혹은 다운그레이드해야 하는 경우가 가끔씩 발생합니다. 이번 시간에는 해당 모듈의 버전(version)을 간단하게 확인하는 방법과 업그레이드, 다운그레이드하는 변경 방법에 대해서 살펴보도록 하겠습니다. 텐서플로우 버전 확인(Tensorflow version check) Tensorflow 모듈의 버전 확인 방법은 모듈을 import한 뒤, __version__ 속성 값을 조회하여 쉽게 확인이 가능합니다. import tensorflow as tf print(tf.__version__) # 2.5.0 저는 2.5.0 버전의 텐서플로우를 사용 중이었습니다. version 확인 ..

Python/Tensorflow 2022.01.21

[Numpy] 파이썬 SVD 차원 축소 예제 : np.linalg.svd() 또는 LA.svd()

파이썬 넘파이 특이값 분해(SVD) 차원 축소 : LA.svd() 이번 글에서는 파이썬 넘파이에서 특이값 분해(SVD)를 이용하여 \(U, \Sigma, V\)의 3가지 행렬로 분리된 결과를 가져와보고, 이를 이용하여 차원 축소를 진행하는 예시까지 간단하게 살펴보도록 하겠습니다. 우선, 오늘 예제에서 사용할 간단한 2 * 3 행렬을 선언해 보겠습니다. import numpy as np A = np.array([[-1, 1, 0], [0, -1, 1]]) 파이썬 full SVD vs truncated SVD 예제 오늘 설명할 파이썬의 np.linalg.svd (혹은 import numpy.linalg as LA 선언 시 LA.svd) 함수는 full SVD와 truncated SVD의 두 가지 형태를 모두..

Python/Numpy 2022.01.20

[Matplotlib] plt.show() 의미와 여러 개일 때 차이

파이썬 plt.show() 함수 의미, 역할 이번 글에서는 파이썬 matplotlib에서 그래프를 그리기 위한 코드를 작성한 뒤, 마지막에 선언하게 되는 plt.show() 함수의 의미와 역할에 대해서 살펴보고, 여러 번 사용되는 경우의 차이점에 대해서도 다루어보도록 하겠습니다. 우선, scatter plot을 만들어보기 위한 임의의 데이터를 생성하겠습니다. import matplotlib.pyplot as plt import numpy as np x1 = np.random.random(50) y1 = np.random.random(50) x2 = np.random.random(50) + 1 y2 = np.random.random(50) + 1 x3 = np.random.random(50) + 2 y3 ..

Python/Matplotlib 2022.01.19

[Numpy] 행렬곱 함수 np.matmul 사용법, np.dot과의 차이

파이썬 넘파이 np.matmul vs np.dot 비교 이번 글에서는 np.dot 함수와의 차이 비교를 기준으로 np.matmul 함수의 사용 방법을 살펴보도록 하겠습니다. 참고로, 지난 번에 행렬곱 함수 중 하나인 np.dot 함수의 사용법에 대한 포스팅을 다룬 적이 있습니다. 해당 글의 링크는 아래에 첨부해두었습니다. [Numpy] 파이썬 내적, 행렬곱 함수 np.dot() 사용법 총정리 파이썬 넘파이 내적 함수 : np.dot() 안녕하세요. 이번 시간에는 파이썬 넘파이 라이브러리에서 제공하는 벡터 내적, 행렬곱 함수인 np.dot 함수의 사용법을 array의 차원에 따라서 총정리해보는 시간 jimmy-ai.tistory.com np.matmul 함수의 기본적인 사용법은 np.matmul(a, b)..

Python/Numpy 2022.01.19

파이썬 enumerate 이용 인덱스 번호 동시 for문 순회

파이썬 인덱스, 값 동시 for문 순회 : enumerate 파이썬에서 for문 순회 중에 인덱스의 번호를 같이 가져와 사용하고 싶은 경우 유용하게 사용 가능한 내장 함수인 enumerate의 원리와 사용 예제에 대해서 살펴보도록 하겠습니다. 파이썬 enumerate 원리 일반 리스트 순회와 enumerate를 이용한 for문 순회를 비교해보겠습니다. list_a = ['a', 'b', 'c', 'd'] # 일반 리스트 순회 for문 for i in list_a: print(i) # 출력 결과 a b c d 리스트를 순회하는 경우 리스트의 각 원소인 a, b, c, d에만 순서대로 접근하게 됩니다. # enumerate를 이용한 리스트 순회 for i in enumerate(list_a): print(i..

[Pandas] 파이썬 데이터프레임 중복 제거 : drop_duplicates() 사용법

파이썬 판다스 중복 행 제거 함수 : drop_duplicates() 이번 글에서는 판다스에서 중복된 행을 쉽게 제거할 수 있는 drop_duplicates 함수의 사용법에 대해서 살펴보겠습니다. 이 글은 판다스 공식 문서의 해당 함수에 대한 글을 기반으로 작성되었습니다. 우선, 다음과 같은 간단한 데이터프레임 있다고 가정해보겠습니다. import pandas as pd a = {'A' : [111, 111, 111, 111, 222, 222], 'B' : ['aaa', 'aaa', 'bbb', 'bbb', 'aaa', 'bbb'], 'C' : ['zzz', 'zzz', 'zzz', 'yyy', 'zzz', 'yyy']} df = pd.DataFrame(a) df 0, 1번 행은 완전히 동일하며, 일부 ..

Python/Pandas 2022.01.17
반응형