Tensorflowチュートリアル
画像セグメンテーションのチュートリアルを行うにあたり
あたまのデータセット読み込みでつまづいたので
自分用にメモ。
ポイント
データセットのダウンロードあるいはビルドで失敗する場合は
あらかじめ手動でデータセットをダウンロードしておき
ビルドのコードを改変して、ローカルのファイルを読み込むようにする
環境
- Windows 10
- Anaconda
画像セグメンテーション
Tensorflow公式サイトで画像セグメンテーションのサンプルコードが公開されています。
いまどきは、関数tfdsをつかってデータセットをダウンロードするようです。
dataset, info = tfds.load('oxford_iiit_pet:3.*.*', with_info=True)
正常にダウンロードされればディレクトリが作成されます。
~\tensorflow_datasets\oxford_iiit_pet\3.2.0
dataset_info.json
features.json
label.labels.txt
oxford_iiit_pet-test.tfrecord-00000-of-00004
oxford_iiit_pet-test.tfrecord-00001-of-00004
oxford_iiit_pet-test.tfrecord-00002-of-00004
oxford_iiit_pet-test.tfrecord-00003-of-00004
oxford_iiit_pet-train.tfrecord-00000-of-00004
oxford_iiit_pet-train.tfrecord-00001-of-00004
oxford_iiit_pet-train.tfrecord-00002-of-00004
oxford_iiit_pet-train.tfrecord-00003-of-00004
species.labels.txt
諸事情により、ソースコードを介してデータセットを読み込めない場合
手動でデータソースをダウンロードして、データセットを作ることができます。
報告されているISSUE
404 Error during oxford-pets tutorial dataset loading - Github Issue
自分も上記症状起きましたが、tensorflow_datasetをアップデートし、かつtfds-nightlyをpip installすることで解消しました。
import tensorflow_datasets as tfds
print(tfds.__version__)
'''出力結果
4.2.0+nightly
'''
チュートリアルの中で使われているデータセット
- 動物の画像(.jpg): 7,393 枚
- セグメンテーション用マスク画像(.png): 14,780 枚
- ファイル名のリスト(.txt)
手動でダウンロードする
30分くらいかかる。
先方サーバーの都合か、しばしば途中で接続が切れるので、放っておくと時間を無駄にする。
Downloads -> 1. Dataset
images.tar.gz
Downloads -> 2. Groundtruth data
annotations.tar.gz
データセットを手動でビルドする
oxford_iiit_pet.pyを編集する。
\anaconda3\envs\py37\Lib\site-packages\tensorflow_datasets\image_classification\oxford_iiit_pet.py
変更前
_BASE_URL = "http://www.robots.ox.ac.uk/~vgg/data/pets/data"
# 中略
dl_paths = dl_manager.download_and_extract({
"images": _BASE_URL + "/images.tar.gz",
"annotations": _BASE_URL + "/annotations.tar.gz",
})
変更前では英国サーバーからデータソースをダウンロードして展開しています。
変更後
dl_paths = {
"images": "~/local/path/to/images", # tar.gzはあらかじめ展開しておく
"annotations": "~/local/path/to/annotations",
}
Anacondaプロンプトで環境をアクティベイトし
tfds build oxford_iiit_petを実行する。
先述の通り、うまくいけばディレクトリが生成される。
~\tensorflow_datasets\oxford_iiit_pet\3.2.0
EOF