「データサイエンス、機械学習、コンピュータビジョンプロジェクトを強化する 効果的なプロジェクト管理のための必須ツール」

必須ツール for effective project management to enhance data science, machine learning, and computer vision projects.

これらのツールを使用して、ビルドとプロジェクトを高速化しましょう

写真 by Eden Constantino on Unsplash

MLまたはデータサイエンスのプロジェクトは、多種多様なファイルとさまざまなアーキテクチャを含むため、非常に大きなものです。しかし驚くべきことに、プロジェクト管理のためのさまざまなツールがあります。これらは独立したツールで、ライブラリやパッケージ管理のための作業をサポートし、非同期での実行を早めるのに役立ちます。

1. Cookiecutter

Cookiecutterは、人が作った非常に硬いクッキーを切るために使用するツールです。[皮肉を言ってごめんなさい]。では、詳細にCookiecutterを理解しましょう。

Cookiecutterの公式ページによれば、

Cookiecutterは、マイクロサービスやソフトウェアプロジェクトのテンプレートを作成して使用することができる、pipや他のパッケージマネージャで簡単にインストールできるPythonパッケージです。Pythonの知識は必要ありません。

ML-DL-CVプロジェクトを開始すると、リポジトリに追加するために多くの作業が必要になります。プロジェクトを構造化する際には、将来のプロジェクトで必要となる要素がわかりにくいです。例えば、API、モデル、フロントエンド、ルート、メインファイルなど、さまざまな要素があります。すべてを管理し、各種ファイルのルートを処理するのは、複雑なプロジェクトの場合に混乱しやすいです。Cookiecutterは、このような問題に対する解決策を提供します。

正しく行われれば、プロジェクトの適切な組織化は時間を節約できますが、新しいプロジェクトを始める際にREADMEファイルを作成しなければならず、時間と労力がかかることもあります。古いプロジェクトを単にクローンして既存のファイルとフォルダを削除または編集するオプションもありますが、これはゼロから始めるよりも楽しくも早くありません。Cookiecutterは、プロジェクトの構造を設定するために使用できる組み込みのテンプレートを提供します。

Cookiecutterのインストール

pip install cookiecutter

condaを使用する場合

conda install -c conda-forge cookiecutter

組み込みのテンプレートを使用してプロジェクトの構造を作成することもできます。

# cookiecutter-pypackage.gitリポジトリテンプレートからプロジェクトを作成します。
# 値を入力するように求められます。
# そして、現在の作業ディレクトリにPythonパッケージが作成されます。
# それらの値に基づいて$ cookiecutter https://github.com/audreyfeldroy/cookiecutter-pypackageから
# GitHub上のリポジトリでは、'gh'接頭辞を使用するだけで済みます。
$ cookiecutter gh:audreyfeldroy/cookiecutter-pypackage

Cookiecutterのジンジャーテンプレートを使用してシンプルなテンプレートを作成したり、上記で述べた組み込みのテンプレートをインポートしたりすることができます。これはPythonライブラリをインストールしたり、gitリポジトリをクローンしたりするのと同じくらい簡単です。

Cookiecutterのドキュメント: こちら

Cookiecutterのリポジトリ: こちら

私がML-DLプロジェクトで有用と思ったいくつかのテンプレート:

データサイエンスプロジェクト用: こちらをクリック

コンピュータビジョン用: こちらをクリック

Cookiecutterをさらに探索し、プロジェクトに適したテンプレートを選択することができます。

2. Poetry

Poetryは芸術ですが、ここではパッケージマネージャです。詳細を見てみましょう。

Poetryは、Pythonパッケージの作成、管理、公開を容易にする最新のPythonパッケージ管理ツールです。

依存関係の管理、パッケージの作成、そしてそれらをPythonパッケージの公式リポジトリであるPyPI(Python Package Index)にアップロードするために、Poetryは使いやすいコマンドラインインターフェースを提供しています。

Poetryを使用することの利点 [出典]

  • 依存関係の解決
  • 仮想環境
  • プロジェクトのスキャフォールディング
  • ビルドとパッケージングの組み込み
  • PyPIへの公開

Poetryのインストール

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

または、Linux、macOS、およびWindows Subsystem for Linux(WSL)のユーザーの場合は、ターミナルを開いて次のコマンドを実行します

curl -sSL https://install.python-poetry.org | python3 -

新規プロジェクトの作成

poetry new My Project 

これにより、My Projectという名前の新しいフォルダが作成され、以下の構造が作成されます。

My Project├── pyproject.toml├── README.md├── phone_number_validator│   └── __init__.py└── tests     └── __init__.py

Poetryは、以下のイメージに示すようなファイルの構造を作成します。

Poetryを使用して作成した後のファイル構造 [Image by author ]
各パッケージの依存関係を格納する.lockファイル [Image by author]
pip installと同様にファイルを追加できる.tomlファイル [Image by author]

これがPoetryがプロジェクトの依存関係を管理するために異なるファイルを使用する方法です。

Poetryドキュメント: こちら

Poetryリポジトリ: こちら

3. FastAPI

FastAPIは、PythonのRESTful APIを作成するための先進的なウェブフレームワークです。シンプルさ、高速さ、および耐久性のため、2018年の初版リリース以来、開発者の間で人気が急速に高まっています。データの検証、シリアル化、および逆シリアル化には、FastAPIはPydanticと型ヒントを使用しています。

FastAPIとdjango、Flaskの比較 [出典: こちら]

FastAPIを選ぶ理由は、アプリケーションをより高速にする非同期サポートがあるためです。DjangoやFlaskに非同期サポートが必要な場合は、Pythonの給与のようなものが必要になります。

インストール

pip install fastapi

本番用のASGIサーバー(例:UvicornまたはHypercorn)も必要です。

pip install "uvicorn[standard]"

シンプルなFastAPIの作成。

from typing import Unionfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root():    return {"Hello": "World"}@app.get("/items/{item_id}")def read_item(item_id: int, q: Union[str, None] = None):    return {"item_id": item_id, "q": q}

最後にFastAPIを実行するには、

uvicorn main:app --reload

ここではmainが.pyファイル名であると仮定しています。ファイル名が異なる場合は、uvicorn your_file_name:appを使用してアプリを実行できます。

--reload:プロジェクトを変更して保存すると、FastAPIが自動的にリロードされて変更が適用されます。そのために、このコマンドを使用します。

必要に応じてポートとホストも指定できます。

FastAPIをテストする方法は、Postmanを使用する必要はありません。

FastAPIには、リクエストとレスポンスを処理するための組み込みのSwaggerインターフェースが付属しています。FastAPIはAPIをテストするための独自のフロントエンドを提供しており、それがAPI SWAGGERとして知られています。

FastAPI SWAGGER

名前の通り、FastAPIはデータサイエンス、機械学習、深層学習のためのAPIを作成するのに非常に優れています。

FastAPIドキュメント: ここをクリック

FastAPIリポジトリ: ここをクリック

これらは、プロジェクトを加速するのに役立つと思われるさまざまなツールです。詳細については説明が長くなりすぎるため、簡単な概要を提供しました。ただし、提供したリンクを確認して、これらのツールを効果的に理解することができます。

もしもこの記事が有益だと感じた場合

寛大さはあなたを幸せにする」という事実が証明されています。ですから、この記事が気に入った場合は拍手をしてください。もしもこの記事が有益だと感じた場合、私をLinkedinVoAGIでフォローしてください。また、記事の公開時に通知を受け取るために購読することもできます。コミュニティを作りましょう!サポートいただきありがとうございます!

また、VoAGIは私に何も提供してくれません。もしも私をサポートしてくれる場合は、ここをクリックしてコーヒーをご購入いただけます。

フィルターバブルがあなたのソーシャルメディア上の意見にバイアスをかけている方法

フィルターバブルとエコーコンバーン:ソーシャルメディアが私たちの意見にバイアスをかけ、AIの役割

VoAGI.com

LangChainの理解 🦜️🔗:PART 1

Langchainにおけるチェーン、プロンプト、およびその他の重要なモジュールの理論的理解

pub.towardsai.net

人間の行動のランダム性の定量化

信じてください、人間は世界で最もランダムなものです

generativeai.pub

包括的ガイド:コンピュータビジョンのトップリソースをすべて1つのブログにまとめました

コンピュータビジョンの包括的なリソースのためにこのブログを保存しておきましょう

VoAGI.com

以上で終わります。

Chinmay!

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more