본문 바로가기

tensor11

[DL] Tensor: Random Tensor 만들기 (NumPy, PyTorch) Random value를 얻는데 이용되는 Probability Distribution에 따라 크게 2가지로 나눌 수 있음. Uniform Distribution Normal Distribution Uniform Distribution Random Variable이 가질 수 있는 값들이 모두 같은 확률을 가짐. int형 element를 가지는 tensor를 반환하는 것들과 float형 element를 가지는 tensor를 반환하는 것으로 크게 나눌 수 있음. 가장 대표적인 함수 이름으로는 randint와 rand 가 있음. randint 가장 대표적인 int형 element를 가지는 random tensor를 생성하는데 사용됨. 다음과 같이 지원됨. np.random.randint( min, max+1, .. 2024. 3. 29.
[DL] Tensor에서 maximum, minimum 찾기 NumPy 의 ndarray에서 np.max 와 np.min 함수를 이용하여 최대, 최소인 값을 구함. 특정 축을 axis parameter로 지정하여 구할 수 있음 (결과는 해당 axis가 1이 됨.) np.argmax 와 na.argmin 함수를 이용하여 최대, 최소인 값의 index를 반환함. PyTorch 의 tensor 에서 torch.max와 torch.min 함수를 사용하여 최대값과 최소값을 구함. 특정 축을 dim parameter로 지정하여 구할 수 있음 (결과는 해당 축이 1이 됨.). 특정 축을 지정할 경우, torch.max와 torch.min은 indices를 같이 반환함. torch.argmax 와 torch.argmin 함수를 이용하여 최대, 최소값의 indices를 반환함. .. 2024. 3. 28.
[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] 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.
반응형