- MNIST:手書き数字の識別アプリ。
- CNN で構築されたモデルにより "0" から "9" の手書き文字の推論を行う。
- モデル構築には PyTorch を使用し、フロントエンドは React、バックエンドは AWS サーバレスアーキテクチャで構成。
分野 | 使用技術 |
---|---|
フロントエンド | React(Typescript), Tailwind CSS |
バックエンド | Lambda(Python), API Gateway, ECR |
モデル構築 | PyTorch |
その他 | AWS SAM, Docker |
- (畳み込み層 + Maxプーリング層) × 2 + 全結合層 × 3
- 活性化関数:最終層 Softmax 関数、それ以外 ReLU 関数。
- 損失関数:クロスエントロピー損失関数
- 最適化アルゴリズム:SGD
- エンドユーザー:手書き数字入力
- フロントエンド:手書き数字を Base64 形式の画像データへエンコード
- フロントエンド:リクエストボディに Base64 形式画像データを含めバックエンドへ POST
- バックエンド:API Gateway でリクエストを受理し、Lambda のイベントを発火
- バックエンド:Lambda で CNN モデルを用いて、画像データがどの数字であるかの確率を算出
- バックエンド:各数字の確率のリストをフロントエンドへレスポンスを返す
- フロントエンド:確率リストから円グラフを生成し、最も確率が高いものを結果として出力