??ウクライナがロシア軍に攻撃されている。民間人が殺され続けています。住宅地が爆撃を受けています。
- 以下を通じてウクライナを支援してください:
- セルヒイ・プリトゥラ慈善財団
- カム・バック・アライブ・チャリティー財団
- ウクライナ国立銀行
- 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) は、2 つのニューラル ネットワークがゲーム内で互いに競合する機械学習フレームワークのクラスです。 2 つのモデルは、敵対的なプロセスによって同時にトレーニングされます。たとえば、生成者(「芸術家」) は本物に見える画像を作成することを学びますが、識別者(「美術評論家」) は本物の画像と偽物を区別することを学びます。
実験 | モデルのデモとトレーニング | タグ | データセット | |
---|---|---|---|---|
衣服の生成 (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
」エラーが発生する可能性があります (問題を参照)。