본문 바로가기
728x90
반응형

Python156

[DL] PyTorch: view, data, and detach PyTorch에서 tensor.view()와 tensor.data를 제공하며 이들은 다음과 같은 용도로 사용됨. tensor.view() tensor.view(*shape) 메서드는 tensor 인스턴스의 dimension을 수정하는데 사용됨. 이 메서드는 새로운 shape를 가진 같은 데이터의 새로운 tensor 인스턴스를 반환하지만, 원본 tensor 인스턴스와 underlying memory를 공유하여 같은 데이터를 공유함. 즉, 메모리를 재할당하지 않고 tensor의 shape와 각 축의 stride만이 바뀜. view()를 사용할 때 반환되는 tensor 인스턴스는 기본 텐서 인스턴스와 데이터를 공유하기 때문에, 하나를 변경하면 다른 하나도 변경됨. 이는 Nueral Network를 구축할 때,.. 2024. 3. 22.
[DL] PyTorch: TPU사용하기 https://github.com/pytorch/xla GitHub - pytorch/xla: Enabling PyTorch on XLA Devices (e.g. Google TPU) Enabling PyTorch on XLA Devices (e.g. Google TPU). Contribute to pytorch/xla development by creating an account on GitHub. github.com 다음 문서도 참고할 것. https://github.com/pytorch/xla/blob/master/API_GUIDE.md TPU로 PyTorch를 사용하기 위해서는 PyTorch / XLA 를 이용한다. PyTorch / XLA PyTorch로 구현된 model 및 PyTorch co.. 2024. 3. 21.
[DL] Storage: PyTorch 텐서를 위한 메모리 관리 Storage는 Tensor 인스턴스의 실제 데이터가 저장되는 1D Numerical Array를 관리함. 여러 Tensor 인스턴스들이 같은 storage를 공유할 수 있음. Storage는 memory에서 contiguous data block를 관리하며, 컴퓨터의 memory에서 homogeneous and contiguous array의 특징상 1D 임. cpu 또는 gpu 등의 memory의 실제 data가 저장된 contiguous block을 관리. 다양한 shape의 Tensor 인스턴스들은 자신의 storage인스턴스를 통해 data block을 관리함. 어찌 보면 Tensor 인스턴스들은 고유한 shape, stride, offset 을 가진 일종의 View에 해당한다. 참고: 다음 U.. 2024. 3. 21.
[Tensor] NaN Safe Aggregation Functions NaN (Not a Number) 값을 포함하는 Tensor 인스턴스에서 Aggregation Function을 사용할 때, NaN을 무시 또는 특정값으로 처리하는 기능을 제공하는 함수. NumPy 기존의 aggregaton function의 이름에 nan을 앞에 붙인 이름을 가지며, 수행 중 NaN을 무시함. 다음의 함수들이 대표적인 예임. np.nansum, np.nanmean, np.nanmax, np.nanmin, np.nanargmin, np.nanargmax, np.nanmedian, np.nanstd, np.nanvar, np.nanprod, np.nanquantile, np.nanpercentile PyTorch 역시, 기존의 aggregaton function의 이름에 nan을 앞에 붙인.. 2024. 3. 20.
[Tensor] vectorized op. (or universal func) Numpy에서 제공하는 ufunc. (Universal Functions)은 homogeneous and contiguous tensor 에서 모든 elements에 같은 연산을 적용하여 기존의 반복 loop에 기반한 연산에 비해 압도적인 속도를 보이면서 간편한 연산자 하나로 처리하도록 지원해줌. ufunc는 일종의 vectorized operation (or vector operation) 임. 실제로 ufunc은 homogeneous and contiguous에 최적화된 바이너리 구현물에 대한 binding이라고 볼 수 있음. Python interface가 제공되어 쉽게 사용가능하지만, 내부적으로는 C, C++등의 컴파일 언어로 만들어진 바이너리 구현물이 동작한다고 보면 된다. https://ds3.. 2024. 3. 19.
[ML] where: numpy 의 idx찾기 numpy에서 ndarray 인스턴스에서 특정 조건을 만족하는 elements의 위치(index, idx)를 찾는 기능을 numpy 모듈의 where 함수가 제공해줌. 기본적으로 numpy에서 index를 나타내는 방식은 각각의 축마다 해당 축에서의 index인 scalar 값들을 가지고 있는 개별의 1차원 ndarray 객체들을 item으로 가지는 tuple (sequence type이면됨)이 이용됨. 3차원의 ndarray에 대한 경우, 3개의 sequence type 인스턴스를 item으로 3개 가진 tuple이 where함수의 반환값이 됨 (당연히 item인 3개의 sequence 인스턴스는 같은 length를 가짐). 다음의 코드로 사용법을 확인할 것. import numpy as np r = .. 2024. 3. 19.
728x90
반응형