LoginSignup
0
0

【機械学習】YouTube-8Mデータセットをダウンロードする

Last updated at Posted at 2023-08-30

はじめに

機械学習分野では無料で使える様々なデータセットが公開されていますが、YouTube-8Mデータセットもその中の一つとなります。
その名の通りYouTube動画にアノテーションが付与されたものとなり、最低再生回数や最低の動画長など、いくつかのサンプリング基準が設けられた高品質なデータセットとなっています。
今回、筆者がラベリングツールの調査のためにこちらのデータセットをダウンロードしようとしたさいにエラーが出てしまったので、その解決方法も含めてダウンロード手順を残しておこうと記事を執筆いたしました。

目標

YouTube-8Mデータセットをダウンロードする。

環境

M1 Mac (Ventura 13.5)

手順

何種類かのデータセットがありますが、今回はYouTube-8Mのフレームレベルのデータセットをダウンロードを試みたいと思います。

ダウンロード手順は公式サイトの以下URLに記載されています。

紹介されている手順に従ってダウンロードを行なっていきます。

手順1:環境構築

データセットダウンロードのために叩くコマンドの一例を確認すると以下です。

データセットダウンロードのためのコマンド
curl data.yt8m.org/download.py | partition=2/frame/train mirror=us python

ここからわかる通り、curlコマンドとpythonが利用できる環境な必要があります。
いずれかが欠けている場合はインストールしましょう。

curlは以下のコマンドをターミナルで実行してインストールしましょう。
brewを使用可能にしておく必要があります。

curlのインストール
brew install curl

pythonに関しては好みのバージョン管理ツールを使用して入れるのがいいでしょう。
筆者はasdfを使用しているため次のコマンドを実行しました。
asdfにインストールのコマンドも一応記載しておきます。

asdfのインストール
brew install asdf
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
プラグインの追加
asdf plugin add python
インストール可能なバージョンの一覧表示
asdf list all python
pythonのインストールとグローバルへのセット
asdf install python <バージョン>
asdf global python <バージョン>

上記コマンドは必要に応じてgloballocalとしてください。

pythonのインストールを確認
python --version

バージョン情報が表示されれば成功です。

手順2:コマンドの修正

公式サイトで案内されているコマンドは次の通りです。

データセットダウンロードのためのコマンド
curl data.yt8m.org/download.py | partition=2/frame/train mirror=us python

このコマンドを必要に応じて修正します。
まず、地域がアジアであればmirrorasiaに修正します。
また必要なデータセットに応じてパスも変更します。
partition=2/frame/trainの部分を、学習データであればtrain、バリデーションデータであればvalidate、テストデータであればtestに変更します。

また、shardオプションを指定することでダウンロードする数量を調整することも可能です。

以上を反映させたコマンド(shard=1:100, 地域=asia, 種類=train)は次の通りとなります。

データセットダウンロードのためのコマンド(修正後)
curl data.yt8m.org/download.py | shard=1,100 partition=2/frame/train mirror=asia python

データをダウンロードしたいディレクトリに移動し、上記コマンドを実行すればデータがダウンロードされるはずですが、このままだと恐らくエラーが起きるものと思います。
エラーを解消するには次の手順が必要です。

手順3:必要なモジュールのインストール

上記コマンドを実行すると次のような実行結果となり、エラーが表示されることと思います。

実行結果
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4450  100  4450    0     0  11095      0 --:--:-- --:--:-- --:--:-- 11237
Traceback (most recent call last):
  File "<stdin>", line 17, in <module>
ModuleNotFoundError: No module named 'six'

sixというモジュールがないと怒られています。

従って以下のpip installコマンドを実行しましょう。

sixのインストール
pip install six

その後再度ダウンロードコマンドを実行すると、次のように成功のログが表示されます。

データセットダウンロードの成功
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4450  100  4450    0     0  10043      0 --:--:-- --:--:-- --:--:-- 10159
Starting fresh download in this directory. Please make sure you have >2TB of free disk space!
>> Downloading http://data.yt8m.org/2/download_plans/frame_train.json 102.7%Succesfully downloaded 2_frame_train_download_plan.json 215275 bytes.
Files remaining 3844
Downloading: train0255.tfrecord
>> Downloading http://asia.data.yt8m.org/2/frame/train/traineh.tfrecord 18.2%^CTraceback (most recent call last):

コマンドを実行したディレクトリを確認すると、データセットがダウンロードされていることと思います。

おわりに

機械学習のラベリングツールについて調査する機会があり、テストデータとしてYouTube-8Mデータセットをダウンロードしようとしたらエラーで引っかかったので解消方法を残したく、記事を書きました。お役に立てましたら幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0