はじめに
機械学習分野では無料で使える様々なデータセットが公開されていますが、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
を使用可能にしておく必要があります。
brew install curl
pythonに関しては好みのバージョン管理ツールを使用して入れるのがいいでしょう。
筆者はasdfを使用しているため次のコマンドを実行しました。
asdfにインストールのコマンドも一応記載しておきます。
brew install asdf
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
asdf plugin add python
asdf list all python
asdf install python <バージョン>
asdf global python <バージョン>
上記コマンドは必要に応じてglobal
をlocal
としてください。
python --version
バージョン情報が表示されれば成功です。
手順2:コマンドの修正
公式サイトで案内されているコマンドは次の通りです。
curl data.yt8m.org/download.py | partition=2/frame/train mirror=us python
このコマンドを必要に応じて修正します。
まず、地域がアジアであればmirror
をasia
に修正します。
また必要なデータセットに応じてパスも変更します。
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コマンドを実行しましょう。
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データセットをダウンロードしようとしたらエラーで引っかかったので解消方法を残したく、記事を書きました。お役に立てましたら幸いです。