ディープラーニングデータセットを管理するための新しいアプローチ

ディープラーニングデータセットを管理するための新しいアプローチ

ハブの紹介

Activeloop の Hub は、Numpy のような配列にデータを配置するオープンソースの Python パッケージです。 Tensorflow や PyTorch などのディープラーニング フレームワークとシームレスに統合され、GPU 処理とトレーニングを高速化します。 Hub API を使用して、データを更新、視覚化、機械学習パイプラインを作成できます。

Hub を使用すると、画像、音声、ビデオ、時系列データを保存し、すばやくアクセスできます。データは、GCS/S3 バケット、ローカル ストレージ、または Activeloop クラウドに保存できます。データは Pytorch モデルのトレーニングに直接使用できるため、データ パイプラインを構築する必要はありません。ハブは、データのバージョン管理、データセットの検索クエリ、分散ワークロードも提供します。

ハブは、数分でデータを作成してクラウドにプッシュできるため、非常に優れていると感じました。この記事では、Hub を使用してデータセットを作成および管理する方法について説明します。

  • Activeloopクラウド上のデータセットを初期化する
  • 画像の処理
  • データをクラウドにプッシュする
  • データのバージョン管理
  • データの視覚化

アクティブループストレージ

Activeloop は、オープンソースとプライベート データセットの両方に無料のストレージを提供します。紹介を通じて最大 200 GB の無料ストレージを獲得することもできます。 Activeloop のハブは Database for AI に接続されており、ラベルを使用してデータセットを視覚化できるほか、複雑な検索クエリを使用してデータを効率的に分析できます。このプラットフォームには、画像のセグメンテーション、分類、オブジェクト検出のための 100 を超えるデータセットも含まれています。

アカウントを作成するには、Activeloop Web サイトを使用するか、「!activeloop register」と入力してサインアップします。コマンドを実行すると、ユーザー名、パスワード、電子メールを追加するように求められます。アカウントの作成に成功したら、「!activeloop login」を使用してログインします。ローカルマシンから直接クラウド データセットを作成および管理できるようになりました。

Jupyter Notebook を使用する場合は「!」を使用し、それ以外の場合は CLI で ! なしでコマンドを直接追加します。

 ! アクティブループレジスタ
! アクティブループログイン- u - p

ハブデータセットを初期化する

このチュートリアルでは、(CC BY 4.0) ライセンスの Kaggle データセット Multi-class Weather を使用します。このデータセットには、天気の分類に基づいた「日の出」、「晴天」、「雨」、「曇り」の 4 つのフォルダーが含まれています。

まず、hub パッケージと kaggle パッケージをインストールする必要があります。 kaggle パッケージを使用すると、データセットを直接ダウンロードして解凍することができます。

 ! pip インストールhub kaggle
! kaggle データセットのダウンロード- d pratik2901 / マルチクラス- 天気- データセット
! マルチクラス- 天気- データセットを解凍する

次に、Activeloop クラウド上に HUB データセットを作成します。データセット関数は、新しいデータセットを作成したり、古いデータセットにアクセスしたりすることもできます。 AWS バケットアドレスを指定して、Amazon サーバー上にデータセットを作成することもできます。 Activeloop でデータセットを作成するには、ユーザー名とデータセット名を含む URL を渡す必要があります。

  hub : // <ユーザー名> / <データセット名> ”
輸入ハブ
ds = hub . dataset ( 'hub://kingabzpro/muticlass-weather-dataset' )

データ前処理

データをハブ形式に処理する前に、データを準備する必要があります。以下のコードは、フォルダー名を抽出し、「class_names」変数に保存します。 2 番目の部分では、データセット フォルダーで使用可能なファイルのリストを作成します。

 PIL インポート画像から
numpyをnp としてインポートする
インポートOS

dataset_folder = '/work/multiclass-weather-dataset/マルチクラス気象データセット'

class_names = os.listdir ( データセットフォルダ)

ファイルリスト= []
os.walk ( dataset_folder ) 内のdirpathdirnamesfilenames 場合:
ファイル名内のファイル名:
files_list . append ( os . path . join ( dirpath , filename ))

file_to_hub 関数は、ファイル名、データセット、クラス名の 3 つのパラメータを受け入れます。各画像からラベルを抽出し、整数に変換します。また、画像ファイルを Numpy のような配列に変換し、テンソルに追加します。このプロジェクトでは、ラベル用と画像データ用の 2 つのテンソルだけが必要です。

 @ ハブコンピューティング
def file_to_hub ( ファイル名サンプル出力クラス名):
## 最初の 2 つの引数は常に次の内容を含むデフォルトの引数です。
# 最初の引数は入力反復可能オブジェクトの要素です (リスト、データセット、配列など)
# 2番目の引数はデータセットのサンプルです
# その他の引数はオプションです

# ファイルに対応するラベル番号を見つける
label_text = os.path.basename ( os.path.dirname ( file_name ) )
label_num = クラス名.index ( label_text )

# 出力サンプルにラベルと画像を追加します
sample_out.labels.append(np.uint32(label_num)) サンプル出力. ラベル. 追加( np.uint32 ( label_num ))
sample_out.images.append (hub.read(file_name ) ) です
sample_out を返す

「png」圧縮と単純なラベル テンソルを使用して画像テンソルを作成しましょう。テンソルの名前が、file_to_hub 関数で指定したものと同じであることを確認してください。テンソルの詳細については、「API サマリー - ハブ 2.0: https://docs.activeloop.ai/api-basics#creating-tensors-and-adding-data」を参照してください。

最後に、files_lists、ハブ データセット インスタンス「ds」、および class_names を指定して、file_to_hub 関数を実行します。データを変換してクラウドにプッシュする必要があるため、これには数分かかります。

 ds の場合:
ds .create_tensor ( 'images'htype = 'image'sample_compression = 'png' )
ds .create_tensor ( 'labels'htype = 'class_label'class_names = class_names )

file_to_hub ( クラス名= クラス名). eval ( ファイルリストdsnum_workers = 2 )

データの視覚化

このデータセットは現在、multiclass-weather-dataset で公開されています。タグを使用してデータセットを探索したり、説明を追加したりして、他のユーザーがライセンス情報やデータの配布について詳しく知ることができるようにすることができます。 Activeloop は視聴体験を向上させるために常に新しい機能を追加しています。

Python API を使用してデータセットにアクセスすることもできます。 PIL の Image 関数を使用して配列を画像に変換し、Jupyter ノートブックに表示します。

 画像.fromarray ( ds [ "images" ][ 0 ] .numpy ())

ラベルにアクセスするには、分類情報を含む class_names を使用し、ラベルを表示するには「labels」テンソルを使用します。

 class_names = ds [ "ラベル" ]. info . class_names
class_names [ ds [ "ラベル" ][ 0 ] .numpy () [ 0 ]]
>>> 「曇り」

提出する

Git や DVC など、異なるブランチを作成して異なるバージョンを管理することもできます。このセクションでは、class_names 情報を更新し、その情報を使用して送信を作成します。

 ds.labels.info.update ( class_names = class_names ) です

ds . commit ( "クラス名が追加されました" )
>>> '455ec7d2b49a36c14f3d80d0879369c4d0a70143'

ご覧のとおり、ログには、変更がマスター ブランチに正常にコミットされたことが示されています。バージョン管理の詳細については、「データセット バージョン管理 - Hub 2.0」を参照してください。

 log = ds.log ( )
- - - - - - - - - - - - - - -
ハブバージョンログ
- - - - - - - - - - - - - - -

現在のブランチ: main

コミット: 455ec7d2b49a36c14f3d80d0879369c4d0a70143 ( メイン)
著者: kingabzpro
時間: 2022 - 0 1 - 31 0 8 : 32 : 0 8
メッセージ: クラスが追加されました

Hub UI を使用してすべてのブランチとコミットを表示することもできます。

原題:ディープラーニングデータセットを管理する新しい方法、著者: Abid Ali Awan


<<:  量子コンピューティングとブロックチェーンの未来

>>:  AI投資から利益を得るための3つの鍵

ブログ    
ブログ    

推薦する

大量データのための2次パーソナルコネクションマイニングアルゴリズム(Hadoop実装)

私は最近、Sina Weibo の「あなたに興味があるかもしれない人々」の間接的なフォローアップ推奨...

...

Facebook の MusicGen を使用してテキストを音楽に変換する方法

翻訳者 |ブガッティレビュー | Chonglou MusicGen を使用すると、誰でもテキスト ...

自然言語処理: 人工知能の重要な要素

自然言語処理 (NLP) により、コンピューターは人間の言語のニュアンスを理解できるようになります。...

MetaGPTが人気に! 2ドルでボスになれる、GitHubには11.2万個のスターがつき、AIエージェント「オールラウンダー」が誕生

インテリジェントエージェントは未来です!最近、別の AI エージェント プロジェクト MetaGPT...

...

...

...

Ruan Yifeng: Github のオブジェクトカウントアルゴリズム

Github を使用しているときに、次のプロンプトを見たことがありますか? $ gitクローン ht...

...

あるプログラマーは仕事を辞めて人工知能に転職した。4か月後に後悔し、多くの挫折を経験した。

転職すると3ヶ月貧乏になるが、転職すると3年間貧乏になるという諺があるようです。科学的な根拠はありま...

Wu Sinan の機械学習への旅: Numpy で多次元配列を作成する

[[188605]] Numpy は Python 科学計算のコアライブラリの 1 つであり、主に多...

機械学習研究動向の分析: TensorFlow が Caffe を上回り、最も一般的に使用される研究フレームワークに

冗談ですが、論文提出のトピックは、Adam で最適化された、完全な畳み込みエンコーダー/デコーダー ...

生態学的な閉ループを作り、RV を運転して、愛する人を楽しい景色の中に連れて行きましょう。

夏休みがやってきました。旅行が必要です。彼/彼女にサプライズをあげたいですか?通常、私たちの旅行は自...

医療におけるロボティック プロセス オートメーションのユースケース

[[419917]]多くの大規模医療機関は現在、デジタル化を実現するためにロボティック・プロセス・オ...