본문 바로가기

Data_Analysis_Track_33/Python

(63)
Python_Deeplearning_pytorch_02-2(gradient_decending) 최적화 (Optimize) 모델을 학습하는 과정이 최적화 과정이다. 모델의 예측값과 실제 값의 차이 즉 오차를 계산하는 함수를 만들고 그 오차를 가장 적게 만드는 파라미터를 찾는 작업을 한다. 최적화 문제 어떤 함수가 반환할 수 있는 가장 작은 또는 가장 큰 값을 반환하도록 하는 파라미터 값을 찾는 문제를 최적화 문제라고 한다. 머신러닝은 Loss 함수(오차계산함수)가 반환하는 값(오차)를 최소화 할 수 있는 파라미터를 찾는 작업을 학습 과정에서 진행한다. 손실함수(Loss Function), 비용함수(Cost Function), 목적함수(Object Function), 오차함수(Error Function) 모델의 예측한 값과 정답값 간의 차이(오차)를 계산하는 함수. 모델을 학습시키는 것은 이 함수의 ..
Python_Deeplearning_pytorch_02(pytorch_linear_regression) LinearRegression from Scratch 구현할 것 공부시간과 성적간의 관계를 모델링한다. - 머신러닝 모델(모형)이란 수집한 데이터를 기반으로 입력값(Feature)와 출력값(Target)간의 관계를 하나의 공식으로 정의한 함수이다. 그 공식을 찾는 과정을 모델링이라고 한다. - 이 예제에서는 공부한 시간으로 점수를 예측하는 모델을 정의한다. - 입력값과 출력값 간의 관계를 정의할 수있는 다양한 함수(공식)이 있다. 여기에서는 딥러닝과 관계가 있는 Linear Regression 을 사용해본다. 우리가 수집한 공부시간과 점수 데이터를 바탕으로 둘 간의 관계를 식으로 정의 할 수 있으면 내가 몇시간 공부하면 점수를 얼마 받을 수 있는지 예측할 수 있게 된다. 수집한 데이터를 기반으로 앞으로 ..
Python_Deeplearning_pytorch_01-2(tensor 다루기) Reshape shape 변경 tensor객체.reshape(*shape) / view(*shape) 이용 - 변환 후 값을 변경하면 원본 배열의 값도 같이 바뀐다. > tensor.clone(): tensor를 복제한다. reshape a=torch.rand(12) a2 = a.reshape(3,4) a3 = a.reshape((3,2,2)) a4 = a.reshape((3,2,-1)) #한 개 axis는 -1로 설정가능하고 그럼 계산해서 알아서 설정해 준다. print(a.shape, a2.size(), a3.shape, a4.shape) view a5 = a.view(3,4) a6 = a.view((3,2,2)) a7 = a.view((3,2,-1)) #한개 axis는 -1로 설정가능 print(a..
Python_Deeplearning_pytorch_01(tensor 다루기) pip install torch torchvision torchaudio : pytorch 설치 Tensor 생성 파이토치에서 데이터를 저장하는 자료구조 ndarray와 성격, 사용법이 유사하다. 원하는 형태(shape) 텐서 생성 torch.tensor(자료구조 \[, dtype\]) - 지정한 dtype(Data type)에 맞는 Tensor객체를 생성해서 반환한다. 특정 타입의 Tensor를 직접 생성 torch.tensor()로 생성하면서 dtype을 지정하면 아래 타입의 Tensor객체가 생성된다. 원하는 Type의 Tensor클래스를 이용해 직접 생성해도 된다. torch.FloatTensor(자료구조) - float32 타입 텐서 생성 torch.LongTensor(자료구조) - int64 ..
Python_opencv_03(도형그리기, 이미지 이동) 도형그리기 각 함수들은 원본 이미지에 도형을 그린다. cv2.line(img, pt1, pt2, color, tickness=None, lineType=None, shift):img** - 선그리기 - 매개변수 - img: 그릴 대상 이미지 - pt1, pt2: 직선의 시작/끝점. 각각 튜플(x, y) - color: 선색 또는 밝기 (B,G,R) 튜플 또는 정수 - thickness: 선 두께. 기본값=1 (픽셀) - lineType: 선 타입. cv2.LINE_4, cv2.LINE_8(기본값), cv2.LINE_AA(부드러운 형태) 중 선택. 일직선이 아니 면 LINE_AA를 준다. - 반환값 - 선을 그린 image (ndarray) 반환 (모든 도형함수 동일) cv2.rectangle(img, p..
Python_opencv_02(기본 영상 처리) 히스토그램 - 영상을 구성하는 픽셀들의 빈도수를 측정하여 그래프(히스토그램)으로 표현 cv2.calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None) images: 히스토그램을 구할 입력영상 리스트 channels: 히스토그램을 구할 채널 리스트 mask: 마스크 영상. 영상전체일 경우 None지정 histSize: 히스토그램 각 채널의 bin의 개수 리스트. 여기서는 각각의 픽셀값을 셀 것이므로 255개로 지정 ranges: 히스토그램을 이용해 빈도수를 셀 최솟값과 최대값을 리스트로 설정. [0, 256] 0 ~ 255 (마지막은 포함 안함) Grayscale 영상의 히스토그램 구하기 import cv2 import m..
Python_opencv_01(opencv 개요) Image란? Image는 width X height X channel 의 pixels로 이루어진 matrix width: 너비로 이미지의 가로 길이를 의미한다. height: 높이로 이미지의 세로 길이를 의미한다. pixel: image가 가지고 있는 값으로 width X height 개수만큼 존재한다. image를 표현하는 bit방식에 따라 값의 범위가 달라진다. 일반적인 Image는 unsigned integer 8bit로 표현 - 0 ~ 255 로 표현 bit수가 높아질 수록 표현할 수 있는 색의 범위가 증가한다. Open CV 개요 https://opencv.org/ Open Source Computer Vision Library로 실시간 computer vision을 목적으로 개발됨. Inte..
Python_numpy_02(인덱싱과 슬라이싱을 이용한 배열의 원소 조회 및 변경) 인덱싱과 슬라이싱을 이용한 배열의 원소 조회 및 변경 배열 인덱싱(Indexing) index - 배열내의 원소의 식별번호 - 0부터 시작 indexing – index를 이용해 원소 조회 - [] 표기법 사용 구문 - ndarray[index] - 양수는 지정한 index의 값을 조회한다. - 음수는 뒤부터 조회한다. - 마지막 index가 -1 - 2차원배열의 경우 - arr[0축 index, 1축 index] - 파이썬 리스트와 차이점 - N차원 배열의 경우 - arr[0축 index, 1축 index, ..., n축 index] 팬시(fancy) 인덱싱 - 여러개의 원소를 한번에 조회할 경우 리스트에 담아 전달한다. - 다차원 배열의 경우 각 축별로 list로 지정 - arr[[1,2,3,4,5]..