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

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

ハブの紹介

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ブラックテクノロジー」がここに集結

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

ChatGPT は検索エンジンに取って代わることができますか?

ChatGPT は、いくつかの簡単な問題のタスクを完璧に完了できます。しかし、AI に記事全体を書...

人工知能はそれほど信頼できるものではない。システムは「知らないことを知らない」し、アルゴリズムは安全ではない。

[[419993]]文/陳潔人工知能技術は、画像分析から自然言語理解、科学分野に至るまで、現在の科...

Tech Neo 9月号:アルゴリズムに基づくIT運用・保守

51CTO.com+プラットフォームは、オリジナルの技術コンテンツの選択と絶妙なレイアウトを通じて、...

従来のジムも人工知能によって消滅してしまうのでしょうか?

[[336339]]この記事はLeiphone.comから転載したものです。転載する場合は、Lei...

待ちに待った! ByteDance初の大規模モデル製品「Doubao」が公開テスト可能、招待コードは不要!

ノア著他の大手企業と比較すると、ByteDanceの大型モデル分野における進歩は常に比較的神秘的であ...

大規模機械学習フレームワークの4つのレベル

[[208759]] 1. 背景Google が GFS、MapReduce、BigTable に関...

...

すべてを圧縮するだけです! OpenAIの主任科学者イリヤ・スツケバーが教師なし学習に注目

最近、OpenAI の主任科学者 Ilya Sutskever 氏が、計算理論の研究に重点を置く S...

Google Chinaのエンジニアは破壊的なアルゴリズムモデルを提案し、Waymoはそれをテストして予測精度を向上させた。

「周囲の車両や歩行者は、次の数秒で何をするだろうか?」これは、安全な自動運転を実現するために答えな...

人工知能が人間の神経を刺激し、2017年は世界的な技術革新が活発化

[[183471]]図1:2017年1月7日、知能ロボット「小宝」が上海市楊浦区のショッピングモール...

医療業界におけるAIアプリケーションは「ゴミを入れればゴミが出る」という状況を避けるべき

ヘルスケア業界における人工知能と機械学習の価値と将来についての認識には大きな変化がありました。業界は...

ボストン・ダイナミクスの大きな黄色い犬が石油会社に加わる! 「決して疲れない」と主張する

[[314711]]ボストン・ダイナミクス社が開発したスポットは、ノルウェーの石油会社アーケル社で独...

水中ロボットが極地でその能力を披露

水中ロボットが極地でその能力を披露[[439571]]科学研究員らが甲板上で展​​開準備を進めている...