?? 우크라이나가 러시아 군대의 공격을 받고 있습니다. 민간인들이 살해당하고 있습니다. 주거 지역이 폭격을 받고 있습니다.
- 다음을 통해 우크라이나를 도와주세요:
- Serhiy Prytula 자선 재단
- 컴백얼라이브 자선재단
- 우크라이나 국립은행
- war.ukraine.ua 및 우크라이나 MFA에 대한 추가 정보
이것은 대화형 기계 학습 실험 모음입니다. 각 실험은 ?️ Jupyter/Colab 노트북 (모델 학습 방법 확인) 및 ?로 구성됩니다. 데모 페이지 (브라우저에서 바로 모델이 작동하는 모습 보기)
홈메이드 GPT • JS에도 관심이 있을 수 있습니다.
️ 이 저장소에는 기계 학습 실험이 포함되어 있으며 프로덕션 준비가 되어 있고 재사용 가능하며 최적화되고 미세 조정된 코드 및 모델이 포함되어 있지 않습니다 . 이는 오히려 다양한 기계 학습 접근 방식, 알고리즘 및 데이터 세트를 학습하고 시도하기 위한 샌드박스 또는 놀이터입니다. 모델의 성능이 좋지 않을 수 있으며 과적합/과소적합이 발생할 여지가 있습니다.
이 실험에서 대부분의 모델은 Keras가 지원되는 TensorFlow 2를 사용하여 훈련되었습니다.
지도 학습은 입력 변수 X
와 출력 변수 Y
가 있고 알고리즘을 사용하여 입력에서 출력으로의 매핑 함수를 학습하는 경우입니다. Y = f(X)
. 목표는 새 입력 데이터 X
가 있을 때 해당 데이터에 대한 출력 변수 Y
를 예측할 수 있도록 매핑 함수를 매우 잘 근사화하는 것입니다. 학습 데이터 세트에서 알고리즘을 학습하는 과정을 교사가 학습 과정을 감독하는 것으로 생각할 수 있기 때문에 지도 학습이라고 합니다.
MLP(다층 퍼셉트론)는 피드포워드 인공 신경망(ANN)의 한 클래스입니다. 다층 퍼셉트론은 특히 단일 숨겨진 계층이 있는 경우 "바닐라" 신경망(다중 퍼셉트론 계층으로 구성됨)이라고도 합니다. 선형적으로 분리할 수 없는 데이터를 구별할 수 있습니다.
실험 | 모델 데모 및 교육 | 태그 | 데이터세트 | |
---|---|---|---|---|
필기 숫자 인식(MLP) | MLP | MNIST | ||
필기 스케치 인식(MLP) | MLP | 퀵드로 |
CNN 또는 ConvNet(컨벌루션 신경망)은 심층 신경망의 한 종류로, 시각적 이미지(사진, 비디오) 분석에 가장 일반적으로 적용됩니다. 사진과 비디오에서 객체를 감지하고 분류하고, 스타일 전송, 얼굴 인식, 포즈 추정 등에 사용됩니다.
실험 | 모델 데모 및 교육 | 태그 | 데이터세트 | |
---|---|---|---|---|
손으로 쓴 숫자 인식(CNN) | CNN | MNIST | ||
손으로 쓴 스케치 인식(CNN) | CNN | 퀵드로 | ||
가위바위보 (CNN) | CNN | RPS | ||
가위바위보 (MobilenetV2) | MobileNetV2 , Transfer learning , CNN | RPS, 이미지넷 | ||
객체 감지(MobileNetV2) | MobileNetV2 , SSDLite , CNN | 머리 | ||
이미지 분류(MobileNetV2) | MobileNetV2 , CNN | 이미지넷 |
순환 신경망(RNN)은 심층 신경망의 한 종류로, 음성, 음성, 텍스트 또는 음악과 같은 시퀀스 기반 데이터에 가장 일반적으로 적용됩니다. 기계 번역, 음성 인식, 음성 합성 등에 사용됩니다.
실험 | 모델 데모 및 교육 | 태그 | 데이터세트 | |
---|---|---|---|---|
숫자 요약(RNN) | LSTM , Sequence-to-sequence | 자동 생성 | ||
셰익스피어 텍스트 생성(RNN) | LSTM , Character-based RNN | 셰익스피어 | ||
위키피디아 텍스트 생성(RNN) | LSTM , Character-based RNN | 위키피디아 | ||
레시피 생성(RNN) | LSTM , Character-based RNN | 레시피 상자 |
비지도 학습은 입력 데이터 X
만 있고 해당 출력 변수가 없는 경우입니다. 비지도 학습의 목표는 데이터에 대해 더 자세히 알아보기 위해 데이터의 기본 구조나 분포를 모델링하는 것입니다. 위의 지도 학습과 달리 정답도 없고 교사도 없기 때문에 이를 비지도 학습이라고 합니다. 데이터에서 흥미로운 구조를 발견하고 표시하는 것은 알고리즘에 맡겨집니다.
생성적 적대 신경망(GAN)은 게임에서 두 개의 신경망이 서로 경쟁하는 기계 학습 프레임워크 클래스입니다. 두 모델은 적대적 프로세스를 통해 동시에 훈련됩니다. 예를 들어 생성자 ("예술가")는 실제처럼 보이는 이미지를 만드는 방법을 배우고, 판별자 ("미술 평론가")는 실제 이미지와 가짜를 구별하는 방법을 배웁니다.
실험 | 모델 데모 및 교육 | 태그 | 데이터세트 | |
---|---|---|---|---|
의류 생성(DCGAN) | DCGAN | 패션 MNIST |
# Create "experiments" environment (from the project root folder).
python3 -m venv .virtualenvs/experiments
# Activate environment.
source .virtualenvs/experiments/bin/activate
# or if you use Fish...
source .virtualenvs/experiments/bin/activate.fish
환경을 종료하려면 deactivate
실행하세요.
# Upgrade pip and setuptools to the latest versions.
pip install --upgrade pip setuptools
# Install packages
pip install -r requirements.txt
새 패키지를 설치하려면 pip install package-name
실행하세요. 요구 사항에 새 패키지를 추가하려면 pip freeze > requirements.txt
실행하세요.
Jupyter Notebook을 가지고 놀고 모델이 어떻게 훈련되었는지 확인하려면 Jupyter Notebook 서버를 시작해야 합니다.
# Launch Jupyter server.
jupyter notebook
Jupyter는 http://localhost:8888/
에서 로컬로 사용할 수 있습니다. 실험이 포함된 노트북은 experiments
폴더에서 찾을 수 있습니다.
데모 애플리케이션은 create-react-app을 통해 React에서 만들어집니다.
# Switch to demos folder from project root.
cd demos
# Install all dependencies.
yarn install
# Start demo server on http.
yarn start
# Or start demo server on https (for camera access in browser to work on localhost).
yarn start-https
데모는 http://localhost:3000/
또는 https://localhost:3000/
에서 로컬로 사용할 수 있습니다.
converter
환경은 데모 애플리케이션에서 TensorFlow.js와 함께 추가로 사용할 수 있도록 실험 중에 학습된 모델을 .h5
Keras 형식에서 Javascript로 이해할 수 있는 형식( .json
및 .bin
파일이 포함된 tfjs_layers_model
또는 tfjs_graph_model
형식)으로 변환하는 데 사용됩니다.
# Create "converter" environment (from the project root folder).
python3 -m venv .virtualenvs/converter
# Activate "converter" environment.
source .virtualenvs/converter/bin/activate
# or if you use Fish...
source .virtualenvs/converter/bin/activate.fish
# Install converter requirements.
pip install -r requirements.converter.txt
keras
모델을 tfjs_layers_model
/ tfjs_graph_model
형식으로 변환하는 작업은 tfjs-converter에 의해 수행됩니다:
예를 들어:
tensorflowjs_converter --input_format keras
./experiments/digits_recognition_mlp/digits_recognition_mlp.h5
./demos/public/models/digits_recognition_mlp
️ 모델을 JS가 이해할 수 있는 형식으로 변환하고 브라우저에 직접 로드하는 것은 좋은 방법이 아닐 수 있습니다. 이 경우 사용자가 수십 또는 수백 메가바이트의 데이터를 브라우저에 로드해야 할 수 있기 때문에 효율적이지 않습니다. 일반적으로 모델은 백엔드(예: TensorFlow Extended)에서 제공되며 모든 모델을 브라우저에 로드하는 대신 사용자는 간단한 HTTP 요청을 수행하여 예측을 수행합니다. 그러나 데모 앱은 단지 실험일 뿐이며 프로덕션용 앱이 아니기 때문에 단순함을 위해(백엔드 실행을 방지하기 위해) 모델을 JS가 이해할 수 있는 형식으로 변환하고 직접 로드합니다. 브라우저.
권장 버전:
> 3.7.3
.>= 12.4.0
.>= 1.13.0
. Python 버전 3.7.3
사용하는 경우 텐서 import tensorflow
할 때 RuntimeError: dictionary changed size during iteration
오류가 발생할 수 있습니다(문제 참조).