PyTorchを使って学べるレシピ紹介

# はじめに

Axrossを運営している藤原です。

**[Axross](https://axross-recipe.com/recipes)** とは、エンジニアの"教育"と"実務"のギャップに着目し、「学んだが活用できない人を減らしたい」という想いのもと、ソフトバンクと社内起業制度にて立ち上げたサービスです。
現役エンジニアによる実践ノウハウを"レシピ"として教材化し、実際にプログラミングで実装を追体験しながら学ぶことができます。AI/機械学習をテーマにした、様々な業務領域やビジネスの課題解決に応用できる実践的な学習教材を160以上揃えています。（2021年8月時点）
Axross：https://axross-recipe.com
公式Twitter：https://twitter.com/Axross_SBiv
![Axrossアイキャッチ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/9f500e0e-a759-20e2-bb8b-480bbcfaaf9b.png)
今回は、深層学習に適したPythonライブラリPyTorchの特徴を紹介し、Axrossのサービスで学べる**PyTorchを活用した実践的なレシピ**を一部ご紹介します。

# PyTorchとは
PyTorch（パイトーチ）は、Facebookの人工知能研究グループ AI Research lab (FAIR)が開発を主導し、2017年にGithubのオープンソースとして公開さた、Pythonで実装が可能な機械学習ライブラリです。

直感的にコードが書けて、シンプルで使いやすい点が特長です。モデルのカスタマイズしやすさ（柔軟性）や豊富な参照リソースが公開され、最新の機械学習手法が入手しやすいため、自然言語処理や画像処理をはじめとする最新の学術研究や論文で、PyTorchを活用するものが多く、開発者から人気があります。ほかにも、短期間のトレーニング、効率的なメモリ使用、動的な計算グラフ、デバックのしやすさもPyTorchフレームワークの特徴で、様々なディープラーニングのソフトウェアがPyTorchを利用して構築されています。
![download.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/c7ad2719-6291-61a8-1d4f-5d023203229d.jpeg)
公式ページ： https://pytorch.org/
Githubリポジトリ：https://github.com/pytorch/pytorch

# PyTorchを活用したレシピの紹介
### [DjangoとPyTorchを使って花を認識するWebアプリを作成するレシピ](https://axross-recipe.com/recipes/45)
投稿者：@satoshi さん

PyTorchを使用して花の種類を深層学習で画像認識し、 webアプリのフレームワーク**Django**を用いて、花の画像ファイルを入力するとその画像に映る花の認識結果を表示する、簡易的な「花の種類検索アプリ」 を作成します。

この基礎技術は、花業界（市場/小売）での花の仕分け作業のデジタル化に応用できます。発展編として、**[画像分類する深層学習モデルの判断部分を可視化するレシピ](https://axross-recipe.com/recipes/128)**で、深層学習モデルが花の画像内でどの部分を見て判断しているのか、**Grad-CAM**によって可視化することができます。

https://axross-recipe.com/recipes/45

### [YOLOv5 と転移学習を使ってマスクの着用者と非着用者の顔検出を行うレシピ](https://axross-recipe.com/recipes/218)
投稿者：@lulu1351 さん

コンピュータービジョンの「物体検知」の王道とも言える**YOLO (You Look Only Once)** シリーズの新モデル**YOLOv5**を活用し、近年需要が高い、マスクの着用者と未着用者の顔検出を行うタスクを実践します。

自分のデータセットでトレーニング（転移学習）を行い、Google Colabratoryを使って、YOLOv5を動かし、TensorBoardツールを使って学習結果の可視化することができるようになります。

https://axross-recipe.com/recipes/218

### [航空写真からアノテーションデータを作成して、対象物を抽出するセマンティックセグメンテーションモデルを作成するレシピ](https://axross-recipe.com/recipes/151)
投稿者：[@regonn_haizine](https://twitter.com/regonn_haizine) さん

Tellusの衛星データを用いて、航空画像等のリモートセンシングデータに対象物がどこに写っているのかを判別するモデル作成の一連の流れを体験できます。ゴルフ場コースの**セマンテックセグメンテーション**タスクを例に、画像データの取得から始め、アノテーションデータを追加してデータセットを作成し、その自作データセットを用いて予測モデルを作成します。

実務活用例としては、衛星画像・航空写真・ドローン空撮画像から、機械学習で対象物を検出するセグメンテーションモデルを作成できるようになります。

https://axross-recipe.com/recipes/151

### [BERTによる日本語QAの発話応答モデル作成レシピ](https://axross-recipe.com/recipes/118)
投稿者：[@katkazzzzz](https://twitter.com/katkazzzzz)さん

Google検索エンジンに使われている自然言語処理モデル**BERT**を使って、A4紙1枚程度の日本語マニュアルの中から、日本語での質問に対する日本語の回答を探し出すモデルを作成します。BERTをfinetuningし、QAタスクに適用するPyTorchによる自然言語処理手法を学ぶことができます。

https://axross-recipe.com/recipes/118

また、続編である**[【発展編】BERTによるQAチャットボットの学習モデル作成レシピ](https://axross-recipe.com/recipes/141)**では、BERTと自然言語処理に特化した深層学習のフレームワーク**Transformers**を活用し、日本語**QAチャットボット**の学習モデルを作成します。

https://axross-recipe.com/recipes/141

[@katkazzzzz](https://twitter.com/katkazzzzz)さんのPyTorch活用関連レシピとして、**[PyTorchを活用し画像のキャプションを自動生成するレシピ](https://axross-recipe.com/recipes/114)**と、**[【発展編】深層学習を活用し、より高精度な画像のキャプションを自動生成するレシピ](https://axross-recipe.com/recipes/139)**も併せてご確認ください。

https://axross-recipe.com/recipes/114

https://axross-recipe.com/recipes/139

### [Pytorchを使ってGANによる異常検知を行うレシピ](https://axross-recipe.com/recipes/113)
投稿者：[@WIReg](https://twitter.com/WlReg)さん

GANを画像の異常検知の領域に応用した「**AnoGAN**」と「**EGBAD**」の手法を実装していきます。GANの仕組みについて丁寧に解説されており、GANの理解を深め、GANの異常検知における実務活用例を学ぶことができます。

GANによる画像の異常検知は、工場での外観検査、農作物の品質検査、医療画像からの疾患検査、などが挙げられ、活用分野は非常に広いです。

https://axross-recipe.com/recipes/113

### [【PyTorch】精度爆上げのオレオレベストプラクティスを10個まとめてみた！](https://axross-recipe.com/recipes/116)
投稿者：[@omiita_atiimo](https://twitter.com/omiita_atiimo)さん

**画像分類**タスクでさらなるモデル精度向上を実現するためのベストプラクティス10個をまとめています。データセットは**CIFAR-10**を用いており、実際に手を動かしながら学べます。

バッチノームやL2正則化、ドロップアウトなど、もはや当たり前となっているものではなく、「データ水増し手法」、「アーキテクチャ」、「ラベル」、「オプティマイザー」、「学習率」などの点から、実際の経験に基づいて面白いと思ったものをそれぞれ実装し、使い方を解説しています。

[@omiita_atiimo](https://twitter.com/omiita_atiimo)さんのPyTorchを活用した**画像認識**モデルとして、**[PyTorchによる画像認識最強モデル「EfficientNet」実装レシピ](https://axross-recipe.com/recipes/64)**も併せてご活用ください。

https://axross-recipe.com/recipes/116

# 最後に

今回は、Axrossの**PyTorchを使って学べる実践レシピ** をご紹介しました。

AIを活用できる人材になるためのコツは、座学勉強よりも、まず実際にAIを実装する体験をしてみる、そして、様々なテーマやデータセットで、異なるAIモデルの実装を繰り返し演習することが近道だと思います。

Axrossのレシピを通して、プログラムの意味を考えながら写経（コードを実際に書き写す行為）し、実際に動くものをつくりながら学ぶことで、新たな知識の習得やスキルアップの一助になれれば幸いです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/b48ed75c-2ed0-5598-0ca4-195626c30d70.png)
また、Axrossでは自身のナレッジを学習教材"レシピ"として寄稿いただけるエンジニアの方も募集しています！

見習いエンジニアから募った学びたい内容を**[ウィッシュリスト](https://docs.google.com/spreadsheets/d/1HTL3puxFN6GGt6ReOwEbkuRGty82q_IDkjcQ9WSkD8c/edit#gid=175640870)**として掲載しています。募集中のテーマからご自身で作成いただけるようでしたら、レシピ作成にご協力お願いいたします。