![見出し画像](https://assets.st-note.com/production/uploads/images/145154760/rectangle_large_type_2_78e9e0634187c65801577a9c8a746f75.png?width=800)
Python日記vol.25🐍ミルクチョコレートorダークチョコレートかを判定する
こんにちは。aliceです。
チョコレートはミルクチョコレート派ですかダークチョコレート派ですか?
私はダークチョコレート派です🍫
カカオ80%くらいが好きです。
![](https://assets.st-note.com/img/1719268352601-j7fd800vzI.png?width=800?width=800?width=800)
さて、今年の春くらいに、とあるお菓子についてミルクチョコレートかダークチョコレートかを判定するアプリを作りました。
![](https://assets.st-note.com/img/1719270033780-2geAykw9KV.png?width=800)
デプロイ💖🥮 pic.twitter.com/nEN9avpRwJ
— alice (@alice37308108) April 1, 2024
ということで、今日はこのアプリの3分クッキングをしたいと思います。
Let’s クッキング🍳
1 データを集める
![](https://assets.st-note.com/img/1719263355394-JmAmv1RKGp.jpg?width=800)
まずは、データを集めましょう。
写真をいっぱい撮ります。
何をやるにしてもデータ収集は大事&面倒ですね。
2 画像を判別するモデルを作る
① 必要なライブラリをインポートします
![](https://assets.st-note.com/img/1719263362421-Ak72SQW7IR.jpg?width=800)
みんな大好きなPyTorchなどなどをインポートします。
② 画像を読み込むための設定をします
![](https://assets.st-note.com/img/1719263370024-TUqQl2NRXH.jpg?width=800)
まずは画像を読み込む準備をしましょう。
![](https://assets.st-note.com/img/1719264044668-9FSHKEOdFQ.png?width=800)
リサイズしてサイズをそろえたり、色の標準化をしたりします。
ちょっと何を言っているかわからなくなってきました💦
③ データを読み込みます
![](https://assets.st-note.com/img/1719263378879-D4zTWieS64.jpg?width=800)
データを読み込んで、訓練用と検証用に分けましょう。
![](https://assets.st-note.com/img/1719264221061-QjDeWGpmu6.png?width=800)
ChatGPTさんが書いてくれた素敵なイラストとともにお楽しみください。
④ モデルを準備します
![](https://assets.st-note.com/img/1719263385606-jwUaNenGlA.jpg?width=800)
RezNet-18というモデルを使います。
![](https://assets.st-note.com/img/1719264596662-lq4vyUQJIT.png?width=800)
RezNet-18の最後の部分を、ミルクチョコレートとダークチョコレートの2クラスの分類になるように変更します。
⑤ 損失関数とオプティマイザーを計算します
![](https://assets.st-note.com/img/1719263392674-lvTJ1lOKLF.jpg?width=800)
難しい言葉が続いてイヤになりますね。
![](https://assets.st-note.com/img/1719264974652-omkKKbCAsm.png?width=800)
どれくらい間違えたかを計算して、どんどん良くなるように微調整してましょう。
言われてみるとリアルな世界と同じですね。
⑥ 訓練と検証をします
![](https://assets.st-note.com/img/1719263402116-4eeKZ4bsXd.jpg?width=800)
実際にどのくらい正確に予想できるかを検証します。
![](https://assets.st-note.com/img/1719265612468-VynYsgSwxy.png?width=800)
ここらへんを何回か繰り返して正解率を上げていきましょう。
![](https://assets.st-note.com/img/1719263410971-LVEzZun8ve.jpg?width=800)
実際はこんなことをされているようですよ。
![](https://assets.st-note.com/img/1719266040749-q5nawyrkPY.png?width=800)
![](https://assets.st-note.com/img/1719266056375-EBAz1TEsAH.png?width=800)
ディープラーニングって難しそうだけど、小学生にわかるように説明してもらうと、案外普段していそうなことだなと思います。
こういうのができる人の言語化レベルってすごいんだろうなぁ。
3 Djangoに入れてデプロイする
![](https://assets.st-note.com/img/1719263417638-GAul7KSKOq.jpg?width=800)
モデルができたのでそのままでの良いのですが、せっかくなのでデプロイしましたよ。
![](https://assets.st-note.com/img/1719263425062-waPnKTkNyK.jpg?width=800)
するとこんな感じのページができあがります。
まぁいろいろ泣きました。課金とか。課金とか。
以上、3分クッキングでした。
最初に書いたとおり、とあるお菓子についてミルクチョコレートかダークチョコレートを判定するので、他のものには使えないです。
世の中のすべてのものがミルクチョコレートかダークチョコレートに判定されます🍫
本当は他のチョコレートでも試したかったのですが、実は自分ではチョコレートをそんなに買わないというのがわかったのでやめました。
食べもの系は食べきれるものにしないといけないのが考えどころですね。
ではでは、Let’s クッキング🍳
![](https://assets.st-note.com/img/1719268131121-6RY1ulQSCO.png?width=800?width=800?width=800)
この記事が気に入ったらサポートをしてみませんか?