반응형
반응형

설치 환경

mac m1 pro 입니다

 

설치

1. conda install -c anaconda seaborn

 

문제

문제없습니다.

반응형

'머신러닝 & 딥러닝' 카테고리의 다른 글

Failed to get CPU frequency: 0 Hz  (0) 2023.05.06
tf.config.set_visible_devices()  (0) 2023.05.06
AUC란?  (0) 2023.04.26
ModuleNotFoundError: No module named ""  (0) 2023.04.25
'NoneType' object has no attribute 'shape'  (0) 2023.04.13
반응형
반응형

AUC란?

AUC는 Area Under Curve의 약어입니다.

AUROC라고 불리기도 하며, AUROC는 Area under the ROC(receiver operating characteristic) curve의 약어입니다.

(정확하게 이해하기 위해서는 ROC의 뜻이 뭔지 알아야합니다.)

AUC는 ROC curve의 밑면적을 말합니다. 그러므로 성능 평가에 수치적인 기준이 될 수 있습니다. 1에 가까울수록 그래프가 좌상단

 

 

ROC란?

ROC는 Receiver Operating Characteristic curve의 약어입니다. FPR(False positive rate)과 TPR(True Positive Rate)을 각각 x, y 축으로 놓은 그래프입니다.

 

TPR이란?

1인 케이스에 대해 1로 바르게 예측하는 비율을 말합니다.

 

FPR이란?

0인 케이스에 대해 1로 틀리게 예측하는 비율입니다.

 

 

추가적인 내용은 아래 사이트를 참조하시면 됩니다.

https://towardsdatascience.com/understanding-the-roc-curve-in-three-visual-steps-795b1399481c

 

Understanding the ROC curve in three visual steps

One of the metrics that took me longer to understand in Data Science was the Receiver Operating Characteristic (ROC) curve. This is a…

towardsdatascience.com

 

반응형

'머신러닝 & 딥러닝' 카테고리의 다른 글

tf.config.set_visible_devices()  (0) 2023.05.06
[library] seaborn  (0) 2023.04.28
ModuleNotFoundError: No module named ""  (0) 2023.04.25
'NoneType' object has no attribute 'shape'  (0) 2023.04.13
pin_memory란?  (0) 2023.04.11
반응형

ModuleNotFoundError: No module named ""

상황

jupyter notebook에서 모듈을 불러올 때 에러가 발생했습니다.

'from ___ import ___'

 

 

시도

1. .ipynb -> .py로 변경

모듈을 import 하는데 실패했습니다.

 

2. install import-ipynb

모듈을 import 하는데 성공했습니다.

 

1) conda install -c conda-forge import_ipynb으로는 실패해서 pip install import-ipynb로 설치해야 합니다.

2) import import_ipynb 사용합니다.

3) 불러올 모듈을 불러옵니다.

반응형

'머신러닝 & 딥러닝' 카테고리의 다른 글

[library] seaborn  (0) 2023.04.28
AUC란?  (0) 2023.04.26
'NoneType' object has no attribute 'shape'  (0) 2023.04.13
pin_memory란?  (0) 2023.04.11
torchvision.transforms.ToTensor()  (0) 2023.04.10
반응형

NoneType' object has no attribute 'shape' 발생 원인

상황

Jupyter notebook에서 ime.shape을 사용할 때 발생했습니다.

 

원인

image가 없는 상태에서 읽어오고 shape 함수를 사용해서 발생했습니다.

 

해결

이미지 불러올 때 경로를 수정해줬습니다.

 

반응형

'머신러닝 & 딥러닝' 카테고리의 다른 글

AUC란?  (0) 2023.04.26
ModuleNotFoundError: No module named ""  (0) 2023.04.25
pin_memory란?  (0) 2023.04.11
torchvision.transforms.ToTensor()  (0) 2023.04.10
Data annotation이란?  (0) 2023.04.10
반응형
반응형

pin_memory란?

pin_memory는 PyTorch에서 제공하는 옵션으로써, GPU에서 데이터 로드할 때 빠르게 옮기기 위해서 사용하는 것을 말합니다.

 

 

pin_memory 사용하는 이유는?

pin_memor를 사용하는 이유는 GPU 같은 경우 DRAM에 할당된 데이터(변수)를 사용하지 못하기 때문에 GPU에서 사용하기 위해 pinned memory로 데이터롤 옮기고 다시 VRAM(GPU 메모리)로 옮기는 과정에서 속도가 많이 느려지는 것을 막기 위해 DRAM을 통하지 않고 바로 VRAM으로 데이터 할당해줘 데이터 로드 속도 개선하는 역활을 하기 때문입니다.

반응형

'머신러닝 & 딥러닝' 카테고리의 다른 글

ModuleNotFoundError: No module named ""  (0) 2023.04.25
'NoneType' object has no attribute 'shape'  (0) 2023.04.13
torchvision.transforms.ToTensor()  (0) 2023.04.10
Data annotation이란?  (0) 2023.04.10
end-to-end란?  (0) 2023.04.09
반응형

LLaMA 100배 빠르게 사용하는 방법!

반응형

 LLaMA load를 C++ I/O 에서 mmap() 사용하면 100배 빨라지고 메모리 사용량도 절반만 사용할 수 있습니다.

 

 

mmap() 을 사용하게 된 이유!

LLaMA가 나오고 나서 실제 자기 컴퓨터에 LLaMA 모델을 사용해보기에는 컴퓨터 성능 문제가 발생했습니다.

이를 해결하기 위한 방법 중 하나로 mmap()을 사용하여 weight을 load 하는 것입니다.

기존에 C++ I/O를 사용하는 것보다 mmap()을 사용하는 것이 100배 빠르게 load 할 수 있으며 메모리도 절반 가량만 사용하다고 합니다.

 

mmap()가 좋은 이유!

- mmap()는 페이지를 복사를 하지 않습니다.

 

mmap() 사용해보기

아래 Github를 통해 mmap()를 사용해보실 수 있습니다.

https://github.com/ggerganov/llama.cpp

 

GitHub - ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++

Port of Facebook's LLaMA model in C/C++. Contribute to ggerganov/llama.cpp development by creating an account on GitHub.

github.com

 

 

더 자세한 내용은 아래 링크 참조해주세요~

https://justine.lol/mmap/?fbclid=IwAR02T8hR1ZEpljlsVVvbdHjIadQ5rO8sXusDP4gWz2GTqWSJi7dgs2EIExw&mibextid=Zxz2cZ 

 

Edge AI Just Got Faster

Using mmap() to load LLaMA faster in parallel with less memory.

justine.lol

 

반응형
반응형

torchvision.transforms.ToTensor()이란?

torchvision.transforms.ToTensor() class는 PIL 이미지 또는 numpy 배열을 pytorch tensor로 변화 시켜주는  클래스입니다.

반응형

 

즉, 이미지를 PIL 이미지 또는 numpy 배열의 구조를 "Channel x Height x Width"로 바꿔줍니다.

그리고 이미지 픽셀의 밝기를 [0~225]를 [0~1]로 수정합니다.

 

from torchvision.transforms import ToTensor
from PIL import Image
import numpy as np

test_img  = Image.open('test.jpg')
img_array  = np.array(test_img)

tf_toTensor = ToTensor()

# PIL
img_tensor = tf_toTensor(test_img)
print(img_tensor_PIL)
print(img_tensor_PIL.size()) # 3 x 428 x 428
print(img_tensor_PIL.min(), img_tensor_PIL.max()) # 0~1

# numpy
img_tensor_ndarray = tf_toTensor(img_array)
print(img_tensor_ndarray)
print(img_tensor_ndarray.size()) # 3 x 428 x 428
print(img_tensor_ndarray.min(), img_tensor_ndarray.max()) # 0~1
반응형

'머신러닝 & 딥러닝' 카테고리의 다른 글

'NoneType' object has no attribute 'shape'  (0) 2023.04.13
pin_memory란?  (0) 2023.04.11
Data annotation이란?  (0) 2023.04.10
end-to-end란?  (0) 2023.04.09
Fully Connected Layers  (0) 2023.04.07
반응형

Annotation이란?

Annotation이란 뜻은 "주석"이라는 뜻을 가지고 있습니다.

이 주석이라는 뜻이 딥러닝, 머신러닝, ai 데이터에서 사용될 떄는 라벨링(Labeling)으로 사용되어 데이터에 대한 설명을 해주는 것을 말합니다.

 

반응형

'머신러닝 & 딥러닝' 카테고리의 다른 글

'NoneType' object has no attribute 'shape'  (0) 2023.04.13
pin_memory란?  (0) 2023.04.11
torchvision.transforms.ToTensor()  (0) 2023.04.10
end-to-end란?  (0) 2023.04.09
Fully Connected Layers  (0) 2023.04.07

+ Recent posts