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

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

ハブの紹介

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つの鍵

ブログ    

推薦する

...

AI Coreの「正体」を1つの記事で理解する

[[251095]] 2018年の初めから年末にかけて、携帯電話業界では人工知能がキーワードとなって...

...

テスト効率が2倍になりました!第2回NCTS中国クラウドテストサミットがAIテストの新たなパラダイムを切り開く

テスト効率が2倍になりました!第2回NCTS中国クラウドテストサミットがAIテストの新たなパラダイム...

形式言語を認識する能力が不十分で、不完全なトランスフォーマーは自己注意の理論的欠陥を克服する必要がある

トランスフォーマー モデルは多くのタスクで非常に効果的ですが、一見単純な形式言語ではうまく機能しませ...

RNNに注目メカニズムを導入し、5つの主要分野におけるシーケンス予測問題を解決する

[[198915]]エンコーダー/デコーダー アーキテクチャは、多くの分野で最先端のパフォーマンスを...

機械学習はデータに依存する

[[186928]]ビッグデータ、分析、モノのインターネット、クラウドテクノロジー...近年、これら...

AI対決シリーズ:あなたのレコメンデーションアルゴリズムは破られましたか?

[[408906]] Google でニュースを検索すると、検索結果にポルノ記事が大量に混ざって表...

...

世界最高の AI 教育会社はどこでしょうか?米国、中国、欧州、イスラエルが先頭を走る

GoogleがモバイルファーストではなくAIファーストを語り、テンセントがAIをあらゆるものに取り入...

人工知能は視覚障害者にさらなる利便性をもたらす

人工知能は私たちの旅行や生活を変えただけでなく、いくつかの専門分野にも影響を与えました。例えば、次に...

Sinovationは、あらゆるもののインテリジェントな接続を促進するエッジインテリジェンスプラットフォームTurboXを立ち上げました。

[51CTO.comより引用] 2019年を振り返ると、今年は人工知能、モノのインターネット、クラ...

企業が人工知能を応用する際に直面する課題

[[340820]] [51CTO.com クイック翻訳] 過去10年間、人工知能をめぐって大きな議...

...

2022年の最先端技術トップ10:将来ロボットは多用途化することが予想される

最近、アリババDAMOアカデミーは、2022年に最も注目に値する最先端技術トップ10をまとめました。...