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

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

ハブの紹介

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

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

60年間の浮き沈みを経て、人工知能はどれだけの偏見や誤った判断を経験するのでしょうか?

過去 2 年間で、人工知能とディープラーニングは起業の分野で人気が高まってきました。シリコンバレーの...

最近では機械翻訳で文章から絵を想像できる

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

医療の荒野での賭け:百度は人工知能で危機を乗り切った

ロビン・リーは標高3,500メートルで牛糞を拾い、泥を塗り、牛の皮を剥ぐという極めて型破りなことをし...

ディープラーニングによる画像セグメンテーション:手法と応用

人工知能とディープラーニング手法に基づく現代のコンピュータービジョン技術は、過去 10 年間で目覚ま...

可視性プラットフォームがセキュリティ オペレーション センター (SOC) にとって重要な理由は何ですか?

ディスプレイ ソリューションは、今日のセキュリティ オペレーション センター (SOC) で必要な複...

ビデオ分析以外に、AI と機械学習はどのようなメリットをもたらすのでしょうか?

人工知能 (AI) と機械学習 (ML) は物理セキュリティ市場に大きな影響を与え、ビデオ分析の精度...

機械学習プロジェクトでオプティマイザーを選択する方法

導入いくつかの一般的なオプティマイザーを紹介し、その長所と短所を分析し、オプティマイザーを選択するた...

AIの力を集めよう!中国のチームが初めてネイチャー誌に中国のAIの状況に関する論文を発表した。

[[332234]] AI若手科学者連盟の主導のもと、国内の大学教授15名とビジネス界のAIリーダ...

現代のサイバーセキュリティに人工知能が必要な理由

ダイヤルアップ インターネットの時代よりずっと以前、ウイルスが感染したフロッピー ディスクを介して拡...

ワンクリックでコード化からコード化なしに変更できますか? AIブラックテクノロジーは本当にモザイクを除去できるのか?

モザイクは人々に嫌われており、「モザイクは人類の文明の進歩を妨げる」という諺が生まれたほどです。映画...

...

工業情報化部:全国の指定規模以上の産業用ロボット製造企業の営業収入は531.7億元

最近、工業情報化省の公式ウェブサイトは、2020年1月から12月までのロボット産業の稼働状況を発表し...

TextRankアルゴリズムを使用した自動テキスト要約

【51CTO.com クイック翻訳】1. はじめにテキスト要約は、自然言語処理 (NLP) の分野に...

2022年の展望: 自動化におけるイノベーションと機会

テクノロジーへの関心と導入が多様化するにつれ、多くの企業が将来の進路を決める岐路に立たされています。...