더보기

데이터의 작업 순서

1.데이터 수집: 원하는 작업에 맞는 데이터를 수집합니다. 이는 주어진 작업에 필요한 특성을 가진 적절한 데이터를 찾는 과정입니다. 예를 들어, 이미지 분류 작업을 위해 이미지 데이터를 수집하는 것입니다.

2.데이터 전처리: 수집한 데이터를 모델에 적용 가능한 형태로 가공합니다. 이 단계에서는 데이터를 정제하고, 노이즈를 제거하며, 필요한 형식으로 변환하는 등의 작업을 수행합니다. 예를 들어, 이미지 데이터의 경우 크기를 조정하거나 정규화하는 등의 전처리를 진행합니다.

3.데이터 분할: 전체 데이터를 훈련용, 검증용, 테스트용 데이터로 분할합니다. 일반적으로 데이터의 70-80%를 훈련용 데이터로 사용하고, 나머지를 검증용과 테스트용 데이터로 사용합니다.

4.모델 훈련: 훈련용 데이터를 사용하여 모델을 학습시킵니다. 모델은 데이터의 입력과 출력 간의 관계를 학습하고, 가중치와 매개변수를 조정하여 예측을 수행할 수 있도록 합니다.

5.모델 평가 및 성능 개선: 검증용 데이터를 사용하여 모델의 성능을 평가합니다. 성능 측정 지표를 확인하고, 필요한 경우 모델의 하이퍼파라미터를 조정하거나 모델 구조를 수정하여 성능을 개선합니다.

6. 모델 테스트: 테스트용 데이터를 사용하여 최종 모델의 성능을 평가합니다. 이 단계에서는 테스트용 데이터에 대한 예측을 수행하고, 결과를 평가하여 모델의 일반화 능력과 실제 환경에서의 성능을 확인합니다.

7. 모델 배포: 최종 모델을 배포하고, 새로운 입력 데이터에 대한 예측을 수행합니다. 이 단계에서는 모델을 실전 환경에 적용하고, 필요에 따라 모델의 유지보수 및 업데이트를 수행합니다.

 

Data Set Split

 

인공신경망에 사용되는 데이터로 일단 모두 다 라벨링은 되있어야 한다(정답지 필요)

1. original data set(full dataset)

2. 훈련용 데이터, 검증용 데이터

3. 테스트 데이터 (별개로 데이터 모아놓아라)

 

훈련용 데이터는 모델의 학습을 위해 사용되고, 

검증용 데이터는 모델의 성능 평가와 하이퍼파라미터 튜닝에 사용되며, 

테스트용 데이터는 최종 모델의 성능을 평가하기 위해 사용

 

훈련용 데이터

레이블링된 데이터가 포함된 데이터 수집

 

검증 데이터

학습시키고 있는데 중간에 끊고 테스트하기 힘들기 때문에 epoch마다 검증을 껴넣기 시작하여 검증 데이터가 필요,

이를 통해 모델 아키텍쳐나 모델 하이퍼파라미터 개선할 수 있다

검증 데이터는 학습 데이터에서 일부를 임의로 분리하여 사용할 수 있다

 

테스트 데이터

모델이 학습한 적 없는 데이터로 구성, 최종 성능 평가에 사용, 훈련 및 검증단계에서 사용하면 안됨

 


데이터로더

1. 배치 처리: 데이터를 지정된 배치 크기로 분할하여 모델에 제공합니다.
2. 데이터 셔플: 데이터를 무작위로 섞어 훈련 중 데이터의 순서를 랜덤하게 만듭니다.
3. 병렬 처리: 데이터를 여러 개의 프로세스 또는 스레드로 병렬로 불러와 모델의 입력에 효율적으로 공급합니다.
4. 데이터 온 디맨드(Dataset on Demand): 필요한 만큼의 데이터만 불러올 수 있어 메모리 사용량을 최적화할 수 있습니다.


데이터로더를 사용하기 위한 단계
1. 데이터셋 생성: 데이터를 로드하거나 생성하여 데이터셋 객체를 생성합니다. 이 데이터셋 객체는 PyTorch의 Dataset 클래스를 상속한 사용자 정의 클래스 또는 기본 제공 데이터셋 클래스일 수 있습니다.

2.데이터 변환: 필요한 경우 데이터셋에 전처리 또는 변환을 적용합니다. 예를 들어, 이미지 데이터의 경우 이미지를 텐서로 변환하거나 정규화할 수 있습니다.

3. 데이터로더 생성: 데이터로더 객체를 생성하고 데이터셋을 인자로 전달합니다. 배치 크기, 셔플 여부, 병렬 처리 여부 등의 매개변수를 설정할 수 있습니다.
4. 반복(iteration): 데이터로더를 반복문에서 사용하여 배치 단위로 데이터를 가져옵니다. 각 반복마다 모델에 입력으로 제공되는 배치 데이터와 해당하는 레이블을 얻을 수 있습니다.

 

PyTorch에서는 torch.utils.data.DataLoader 클래스를 사용하여 데이터로더를 생성할 수 있음, 그 외에도 구글의 텐서플로우에서 만든 tfrecord 등등도 있다.


PyTorch 데이터 로더

목적:  효율적인 데이터 공급을 위해 데이터셋을 배치 단위로 분할하고, 데이터를 로드하고 전처리

 

작업 과정:

1. 데이터셋 생성: PyTorch의 Dataset 클래스를 상속하여 데이터셋 객체를 생성합니다. 데이터셋 객체는 입력 데이터와 해당하는 레이블 또는 타겟 값을 제공합니다. 이때 데이터셋은 훈련 데이터, 검증 데이터, 테스트 데이터 등을 나타낼 수 있습니다. 데이터셋은 __getitem__ 메서드를 구현하여 인덱스를 통해 데이터와 레이블을 접근할 수 있도록 합니다.

2. 데이터 변환: 데이터셋에 필요한 전처리 또는 변환을 적용합니다. 이 단계에서는 입력 데이터에 대한 정규화, 이미지 데이터의 크기 조정, 데이터 증강(augmentation) 등의 작업을 수행할 수 있습니다. 이를 위해 PyTorch의 transforms 모듈을 사용할 수 있습니다.

3. 데이터 로더 생성: 데이터 로더 객체를 생성하여 데이터셋을 래핑합니다. 데이터 로더는 데이터셋을 배치 단위로 분할하고, 데이터를 효율적으로 로드하기 위해 병렬 처리와 데이터 셔플 기능을 제공합니다. 데이터 로더는 torch.utils.data.DataLoader 클래스를 사용하여 생성됩니다. 이때 배치 크기, 셔플 여부, 병렬 처리 여부 등의 매개변수를 설정할 수 있습니다.

4. 반복(iteration): 생성한 데이터 로더를 반복문에서 사용하여 배치 단위로 데이터를 가져옵니다. 각 반복마다 모델에 입력으로 제공되는 배치 데이터와 해당하는 레이블을 얻을 수 있습니다. 이러한 반복 과정은 주로 모델의 훈련과 검증 단계에서 사용되며, PyTorch의 학습 루프나 훈련 함수에서 반복적으로 수행됩니다.

 


CPU(Central Processing Unit):

목적:

CPU는 컴퓨터 시스템의 "뇌"로서 다양한 작업을 수행

주요 목적은 범용적인 계산 작업을 처리

CPU는 다양한 작업을 순차적으로 처리하며, 각 작업에 대해 정확하고 복잡한 제어

 

디자인 구조:

 CPU는 소수의 코어(컴퓨팅 유닛)로 구성되며, 각 코어는 복잡한 제어 유닛과 캐시 메모리 등의 추가 기능을 가지고 있음

CPU의 코어는 일반적으로 성능이 높고 복잡한 계산 작업을 처리하는 데 특화

 CPU는 범용 목적을 위해 다양한 유형의 작업을 수행할 수 있는 다양한 명령어 세트를 지원

 

 

GPU(Graphics Processing Unit):

목적: 

그래픽 연산에 특화

그래픽 처리 작업인 3D 렌더링, 비디오 인코딩 및 디코딩, 이미지 처리 등을 고속으로 처리하는 데 사용

또한 최근에는 딥러닝과 같은 병렬 계산 작업에서도 많이 사용


디자인 구조: 

GPU는 수많은 작은 코어(스트림 프로세서 또는 CUDA 코어)로 구성

각 코어는 단순하지만 많은 양의 작업을 동시에 처리할 수 있음

GPU는 대규모 데이터 병렬 처리에 특화

동일한 작업을 동시에 여러 개의 데이터에 적용하여 높은 처리량을 달성

 

 

->

CPU는 범용적인 계산 작업을 처리하기 위해 복잡한 제어와 높은 성능이 필요한 작업에 적합

반면에 GPU는 그래픽 처리 및 병렬 계산 작업에 특화되어 있으며, 대량의 작업을 동시에 처리하는 데 효율적

일반적으로 GPU는 대량의 데이터와 복잡한 모델을 다루는 딥러닝 및 머신러닝 작업에 많이 사용

CPU는 CPU의 다양한 기능과 유연성으로 전처리, 간단한 모델 훈련 및 개발 단계에서 사용

 

 


딥러닝 라이브러리 : PyTorch

딥러닝을 위한 오픈소스 머신러닝 라이브러리로, 유연하고 강력한 도구를 제공하여 딥러닝 모델을 구축하고 학습시키는 데 사용

(keras, tensorFlow,Pytorch 등등 중에서 pytorch를 하는 이유... keras는 일단 tensorFlow와 통합되었고 Tensorflow는 복잡하다)

 

 

 

주요 목적

1. 딥러닝 모델 구축: PyTorch는 모델 아키텍처를 정의하고, 다양한 유형의 레이어, 활성화 함수, 손실 함수 등을 사용하여 딥러닝 모델을 구축하는 데 사용 (모델의 계층적 구조를 유연하게 설계가 가능)

2. 모델 학습: PyTorch는 모델에 입력 데이터를 주입하고, 순전파(forward pass)를 통해 출력을 계산하며, 손실 함수를 사용하여 예측과 실제 값 사이의 오차를 계산. 이후 역전파(backward pass) 알고리즘을 통해 그래디언트(gradient)를 계산하고, 옵티마이저(optimizer)를 사용하여 모델의 가중치를 업데이트하여 학습하는 과정을 수행

3. 데이터 로딩 및 전처리: PyTorch는 데이터 로딩과 전처리를 위한 편리한 도구들을 제공. 데이터셋 클래스를 사용하여 데이터를 로드하고, transforms 모듈을 사용하여 데이터 전처리를 수행. 또한 데이터 로더(DataLoader)를 사용하여 데이터를 배치 단위로 분할하고 병렬 처리를 수행할 수 있음.

4. 모델 평가 및 추론: 학습된 모델을 사용하여 새로운 데이터에 대한 예측을 수행하거나 모델의 성능을 평가. PyTorch는 추론(inference) 작업을 위한 기능을 제공하며, 학습된 모델을 배포하고 활용하는 데 유용

 


 작업 과정
1. 데이터 준비: 입력 데이터와 해당하는 레이블 또는 타겟 값을 가지고 있는 데이터셋을 생성
2. 모델 구성: 모델 아키텍처를 정의하고, 필요한 레이어와 활성화 함수를 사용하여 모델을 구성
3. 손실 함수 정의: 모델의 출력과 실제 값 사이의 오차를 계산하기 위한 손실 함수를 정의
4. 옵티마이저 선택: 모델의 가중치를 업데이트하기 위한 옵티마이저를 선택하고 초기화
5. 학습 루프 실행: 주어진 데이터셋을 사용하여 모델을 학습. 입력 데이터를 모델에 주입하고, 순전파를 통해 예측 값을 계산한 후, 손실 함수를 사용하여 오차를 계산하고 역전파 알고리즘을 통해 모델의 가중치를 업데이트
6. 모델 평가 또는 추론: 학습된 모델을 사용하여 새로운 데이터에 대한 예측을 수행하거나 모델의 성능을 평가합니다.

PyTorch의 유연한 구조와 동적 계산 그래프는 딥러닝 모델의 개발과 실험을 효율적으로 수행할 수 있도록 도와줌

 

 


Pytorch  설치

1. 가상환경 구축

아나콘다 프롬포트(실행) -> 윈도우: 관리자 권한으로 열기!!

 

2. 가상환경에서 가상환경 만들기

conda create -n 가상환경명칭 python==3.8

 

3. 가상환경 접속

conda activate 가상환경명

-----------

 

Pytorch 설치 

https://pytorch.org/

 

PyTorch

An open source machine learning framework that accelerates the path from research prototyping to production deployment.

pytorch.org

pc에 gpu가 있으면 얘를 설치(윈도우 기준) 

cpu만 있으면 이것을 설치

 

Ctrl + Shift + ESC

작업관리자 - 성능 탭에서 GPU 유무를 확인하실 수 있습니다.

conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorch
# gpu 있는 윈도우

 

버전 확인

python -c "import torch; print(torch.__version__)"

 

 

이제 주피터 노트북과 kernal 설치하고 쓰면 된다

 

 

 

 

 


가상환경 삭제

더보기

가상환경 삭제

conda remove --name [가상환경명] --all

 

'machine_learning' 카테고리의 다른 글

데이터 가공 구축 프로세스  (0) 2023.06.22
데이터 수집과 전처리2  (0) 2023.06.14
데이터 수집과 전처리  (0) 2023.06.14
통계 - 인자분석  (0) 2023.06.02
통계 - 주성분 분석(PCA)  (0) 2023.06.01

image augmentation 이미지 증감

이미지 증강 (Image augmentation)은 기계 학습과 컴퓨터 비전 작업에서 사용되는 기술

이미지 데이터셋을 다양한 방법으로 변형하여 데이터의 다양성을 증가시키는 과정

이를 통해 모델의 일반화 성능을 향상

일반적으로 이미지 증강은 다음과 같은 변형을 포함

1. 이동 (Translation): 이미지를 수평 또는 수직으로 이동
2. 회전 (Rotation): 이미지를 회전
3. 확대/축소 (Scaling): 이미지를 확대하거나 축소
4. 반전 (Flip): 이미지를 좌우 또는 상하로 반전
5. 밝기 조절 (Brightness adjustment): 이미지의 밝기를 조절
6. 색상 변환 (Color transformation): 이미지의 색상을 변환
7. 잡음 추가 (Noise addition): 이미지에 잡음을 추가
8. 잘라내기 (Cropping): 이미지의 일부분을 크롭

 

이러한 이미지 증강 기법은 데이터셋에 다양성을 추가하고, 과적합을 방지하며, 모델의 일반화 능력을 향상

TensorFlow, Keras, OpenCV 등의 라이브러리에서 이미지 증강을 위한 다양한 함수와 도구를 제공

 

작업 주의 사항

임의로 이미지를 회전하면 모서리 바깥 쪽에 중요한 이미지 부분이 있을 수 있다

이미지 회전 후에는  빈 부분(검정패딩) 부분으로 채운다

회전하지 않는 사물의 경우(거리 표지판)

 

이미지 증감 라이브러리

1. albumentation : 다른 데이터 증강 라이브러리에 비해 높은 속도와 효율성 제공, Cython은 파이썬으로 작성된 프로그램

Cpython은 파이썬 문법으로 작성된 프로그램을 한줄한줄 c로 바꿔서 읽게함, Cython은 파이썬으로 작성된 프로그램을 c 언어로 실행시키는 거라 더 빠름

https://albumentations.ai/

pip install -U albumentations

 

 

 

데이터 라벨링하는 이유

 

훈련되지 않은 장치에 이미지 라벨링을 통해 장치가 객체를 인지할 수 있게 해주는 작업

 

라벨링 박스

객체 전체를 잡되 타이트하게 잡아라

눈에 좀 보인다 싶으면 다 잡아라 (블러되어있거나 어느정도 가려져있거나 못하겠다 싶은 것은 검은 박스로 가려버려라)

 

bbox는 [x,y,w,h] 또는 [x1,y1,x2,y2]로 두점 좌표로 구성 되어있지만( yolo는 bbox의 중간 위치가 좌표값으로 사용된다 [x_center, y_center, w, h] 이때 좌표 값으로 보통 이미지내 절대적인 픽셀 위치가 아닌 이미지에 대한 상대적 값 사용)

polygon은 다각형 모양으로 객체의 가시영역 외곽선을 따라 점을 찍어 그리는 라벨링 방법

polyline은 여러 개의 점을 가진 선을 활용하여 특정 영역을 라벨링하여 인도/차선 구분 

point는 특정 지점을 라벨링하는 작업으로 안면 인식을 통한 감정인식 등에 사용

 

 

 

학습 목적에 따라 라벨링(labeling) 또는 어노테이션(annotation)으로 데이터를 준비

-분류(Classification): 분류 작업에서는 주어진 이미지에 대해 단일한 라벨 정보만 필요. 이 경우 라벨링(labeling) 작업을 수행

-객체 탐지(Detection): 객체 탐지 작업에서는 이미지 내의 개별 객체를 탐지하고, 객체의 위치와 경계 상자(bounding box) 등의 메타 정보를 기록. 이를 위해 주로 어노테이션(annotation) 파일을 사용하며, 개별 객체의 위치와 클래스 라벨을 기록

-시맨틱 세그멘테이션(Semantic Segmentation): 시맨틱 세그멘테이션은 이미지를 픽셀 단위로 분할하여 각 픽셀이 어떤 클래스에 속하는지 알려주는 작업입니다. 각 픽셀에 대한 클래스 라벨을 기록하기 위해 어노테이션(annotation) 파일이 사용. 픽셀 단위의 라벨 정보를 기록하여 이미지를 세그멘테이션하는 것 (instance segmentation은 또 다른 것임, 각 객체에 대한 정보)

 

어노테이션(Annotation)은 이미지 처리 작업에서 추가적인 정보를 기록하기 위한 양식. 주로 JSON이나 XML 형식으로 표현되며, 때에 따라 CSV나 TXT 등의 형식도 사용될 수 있음

 

 

라벨링 툴

1. makesense : 브라우저 형태로 사용가능한 라벨링 도구

2. Roboflow : 브라우저 형태로 사용가능한 라벨링 도구

 

json 파일

 데이터를 구조화하여 저장하고 교환하기 위한 경량의 데이터 형식

xml 파일

데이터를 저장하고 전송, 데이터와 그 구조를 기술하는데 사용, 속성과 값으로 구성, 계층 구조로 구성

 

 

'machine_learning' 카테고리의 다른 글

데이터 가공 구축 프로세스  (0) 2023.06.22
데이터셋과 데이터로더, Pytorch 설치  (1) 2023.06.16
데이터 수집과 전처리  (0) 2023.06.14
통계 - 인자분석  (0) 2023.06.02
통계 - 주성분 분석(PCA)  (0) 2023.06.01

 

 

데이터 수집 방법

1. 공개 데이터 사용

2. 크롤링 데이터 사용(python crawling...)

3. 직접 촬영

 

데이터 전처리

수집된 데이터 -> 정제 -> 이미지 데이터 다루기(각도 조절, 채도 높이기 등)

...->데이터 학습

 

이미지 데이터 라벨링 소개

외부나 도커를 이용해 내부에서 작업하는 방법이 있다.

툴에는 CVAT이 있고 깃허브에 도커 파일이 따로 있어 내부적으로 프라이빗한 작업 가능

 

데이터 어노테이션 파일

라벨링 작업이후 생기는 파일로 XML이나 JSON 파일이 생긴다

읽고 활용할 수 있어야 한다.

 

데이터 나누기

훈련 세트와 데스트 세트로 나눈다.(양성과 음성 클래스 적절히 섞기)

 


데이터 수집 방법

 

1. 웹 스크래핑 : 웹 페이지에서 데이터 추출

2. 소셜 미디어 모니터링 ( 대화 , 키워드, 해시태그 등 수집 )

3. 데이터 크롤링 : 웹 사이트 링크 따라가며 데이터 수집

4. IoT 센서 데이터 수집 : 스마트 시티, 스마트 홈 등에서 발생하는 데이터 수집

5. 로그 데이터 수집: 서버 네트워크 등에서 발생하는 로그 데이터 수집하는 기술

 

수집하고자 하는 데이터 종류아 목적에 따라 선택

 

데이터 수집에서 고려할 것

 

1. 시점 변화 : 객체 인식이나 추적에 필요하며 객체나 장면의 위치 방향 각도 크기 등이 서로 다른 시점에서 촬영된 데이터 수집 필요

2. 척도 변형 : 객체나 장면 크기에 따른 차이를 의미, 동일한 객체나 장면이 서로 다른 크기로 촬영된 이미지들 간의 차이를 고려하여 데이터 수집 시 다양한 크기의 이미지 수집 or 이미지 축소 또는 확대하여 데이터셋 보강(augmentatation 기술 활용)

3. 변형: 대상의 형태가 변형될 때.. 데이터를 회전, 이동, 대칭하여 수집(augmentatation 기술 활용)

4. 가려짐 : 다양한 뷰 포인트에서 객체 촬영하여 데이터셋 보강, de-occlusion 기술 활용

5. 조명 조건  (다양한 조건 환경에서 데이터 수집)

6. 배경 혼란 : 배경이 복잡할 경우 검정색마스크로 가려버리거나, 딥러닝 기술을 활용한 세그멘테이션 알고리즘이 효과적 해결

7. 클래스 내 변형 : 클래스 간에 속하는 객체들 간의 차이를 최대한 줄이는 게 좋다( 클래스가 차라면 기아 중형차만 모으기...)

 

이미지 데이터셋 공유 사이트

MNIST : 손글씨 사이트

CIFAR : 10개 클래스 있다

ImageNet :cv 경진대화에서 사용되는 데이터셋 - 분류 문제에 활용

COCO : 오브젝트 디텍션에 활용되는 데이터셋

DOTA : 항공 이미지

CelebA : 유명인 얼굴 데이터셋 GAN 모델에서 많이 활용

AI Hub : 국내 데이터셋 플랫폼

Kaggle : 보통 예측이나 분석에 활용되는 데이터셋 

 


크롤링

인터넷 상의 웹 페이지에서 데이터를 수집하는 과정, 일반적으로 크롤러 또는 스파이더라고 불리는 소프트웨이 사용

웹스크래핑과 연관되어있으며 크롤링은 웹 스크래핑의 프로세스 중 하나.

더보기

크롤링은 웹 스크래핑의 하위 과정 중 하나입니다. 웹 스크래핑은 웹 페이지에서 정보를 추출하는 전반적인 과정을 의미하며, 이는 크롤링과 데이터 추출 및 가공 단계로 구성됩니다.

 

크롤링은 웹을 돌아다니면서 웹 페이지를 자동으로 탐색하는 과정을 말합니다. 크롤러(또는 스파이더)라고 불리는 프로그램이 웹 페이지를 방문하고 링크를 따라가며 다른 페이지를 찾아내는 것입니다. 크롤러는 일반적으로 로봇 또는 봇으로 알려져 있으며, 웹 사이트의 구조를 파악하고 데이터 수집 대상을 확인합니다.

 

크롤러가 웹 페이지를 탐색하면서 필요한 정보를 추출하기 위해 웹 스크래핑 기술을 사용합니다. 웹 스크래핑은 HTML 문서를 파싱하여 원하는 데이터를 추출하는 과정을 말합니다. 이러한 데이터 추출 작업은 CSS 선택자, XPath, 정규 표현식 등을 사용하여 웹 페이지의 특정 요소를 식별하고 추출하는 방식으로 이루어집니다.

 

따라서 크롤링은 웹 스크래핑의 하위 과정 중 하나로, 데이터를 수집하기 위해 웹 페이지를 탐색하는 역할을 담당합니다. 웹 스크래핑은 크롤링으로부터 얻은 웹 페이지에서 필요한 데이터를 추출하여 가공하는 단계를 포함합니다.

 

 

이미지 크롤링

인터넷 상 존재하는 이미지 자동 수집

 

필요한 지식


HTTP(Hypertext Transfer Protocol):
HTTP는 인터넷에서 데이터를 주고받기 위한 프로토콜입니다. 클라이언트(일반적으로 웹 브라우저)가 서버에 요청을 보내면, 서버는 해당 요청에 대한 응답을 클라이언트에게 전송합니다. HTTP는 주로 웹 브라우저와 웹 서버 간에 사용되며, 클라이언트와 서버 간의 텍스트 기반 메시지 교환을 통해 이루어집니다.(웹 프로토콜: 웹 서비스를 제공하기 위해 사용되는 통신 규약으로 가장 일반적인 웹 프로토콜은 HTTP)

HTTP 요청(Request):
HTTP 요청은 클라이언트가 서버에게 특정 동작을 요청하는 메시지입니다. 주요 구성 요소는 다음과 같습니다:

메서드(Method): 요청의 종류를 나타냅니다. 일반적인 메서드로는 GET(리소스 조회), POST(데이터 전송), PUT(리소스 업데이트), DELETE(리소스 삭제) 등이 있습니다.


경로(Path): 서버에서 요청하는 리소스의 경로를 나타냅니다.


헤더(Headers): 요청에 대한 부가 정보를 포함합니다. 예를 들어, 사용자 에이전트 정보, 인증 정보 등이 있습니다.


본문(Body): POST나 PUT 메서드와 함께 전송되는 데이터를 포함합니다.


HTTP 응답(Response):
HTTP 응답은 서버에서 클라이언트에게 보내는 메시지로, 요청에 대한 처리 결과를 담고 있습니다. 주요 구성 요소는 다음과 같습니다:

상태 코드(Status Code): 요청 처리의 결과를 나타냅니다. 일반적인 상태 코드로는 200(성공), 404(찾을 수 없음), 500(내부 서버 오류) 등이 있습니다.


헤더(Headers): 응답에 대한 부가 정보를 포함합니다. 예를 들어, 콘텐츠 유형, 길이 등이 있습니다.


본문(Body): 응답으로 전송되는 데이터를 포함합니다. 일반적으로 HTML, JSON, 이미지 등이 포함될 수 있습니다.

 

 

html/css/js 에 대한 이해도 필요

 

이미지 크롤링에 사용되는 라이브러리(크롤링은 라이브러리가 항상 바뀐다!)

1.Request : 파이썬에서 http요청을 보내기 위한 라이브러리

2.BeautifulSoup : HTML 또는 XML 문서를 파싱하고, 문서 내에서 특정 요소를 검색하고 추출하는 기능을 제공

3. scrapy : 파이썬으로 작성된 웹 크롤링 프레임워크

4. 셀레늄(Selenium) : 자동화 웹 어플리케이션 테스트를 위한 프레임 워크-크롤링과 같은 웹스크래핑 작업에도 사용 가능

 


이미지 전처리

realworld에 속한 이미지로 학습 필요 애니메이션이나 일러스트 합성 이미지 제거

 

크기 조정 (Resizing): 이미지의 크기를 변경하여 원하는 크기로 조정

자르기 (Cropping): 이미지에서 관심 영역을 추출하기 위해 이미지의 일부분을 잘라내는 것

회전 (Rotation): 이미지를 특정 각도로 회전시키는 것

밝기 조정 (Brightness Adjustment): 이미지의 밝기를 조절하여 전체적인 명암을 변경하는 것


색상 변환 (Color Conversion): 이미지의 색상 공간을 변환하는 것

필터링 (Filtering): 이미지에 필터를 적용하여 이미지를 부드럽게 하거나 엣지를 강조하는 등의 효과

정규화 (Normalization): 이미지의 픽셀 값을 정규화하여 일관된 범위로 조정하는 것

'machine_learning' 카테고리의 다른 글

데이터셋과 데이터로더, Pytorch 설치  (1) 2023.06.16
데이터 수집과 전처리2  (0) 2023.06.14
통계 - 인자분석  (0) 2023.06.02
통계 - 주성분 분석(PCA)  (0) 2023.06.01
통계 - 공분산과 상관행렬  (0) 2023.06.01

승제쌤 강의를 듣다가 살만 칸쌤 거를 다시 들으니 이해가 잘된다.. 승제쌤 고맙습니다 

'Math' 카테고리의 다른 글

삼각함수 - 필기1  (0) 2023.06.10

노트는 금방 새거로 바꾸게 되기 때문에 여기 한번 더 저장.

정승제 선생님 특강을 조금 들었다. 시간날 때 마다 삼각함수 특강은 다 들을 예정

 

[수학] 삼각함수의 정의 l 정승제의 말로만 듣던 삼각함수의 신(神) l 5일만에 끝내는 라이브 특강 - YouTube

'Math' 카테고리의 다른 글

단위원 , 피타고라스 정리  (0) 2023.06.13

+ Recent posts