飲み屋での話の流れ*2
最近多少マシになったけど、一時期のアルゴリズム深すぎて自宅で回すのきつくね?
わかる。
みたいな話をしてた時に、
って言葉が出て、そこからデータをためたり流したりビジネスで活用するところの話になった。
アルゴリズムとデータ構造っていうよりちょっと広いよね。全く別ではないけど
データのアルゴリズムとロジスティクスってことじゃね!?
とお互い納得してた。
アルゴリズムとロジスティクス?
DeepLearningで言えばネットワークの構造や最適化の部分(GoogLeNet ResNetとかとか
データの入出力やデータ構造、保持の仕方、ビジネスロジックへのエクスポート(今更だけどだいぶ広い
と分けてみた。
Wikipediaで調べてみると
ロジスティクスとは、サプライチェーンプロセスの一部であり、顧客の要求を満たすため、発生地点から消費地点までの効率的・発展的な「もの」の流れと保管、サービス、および関連する情報を計画、実施、およびコントロールする過程である。
ロジスティクス - Wikipedia
って引用が出てきた。
「もの」ではないけど「データ」に置き換えるとしっくりくる。
実はロジスティクスで苦労してる
みんな大好きMNISTチュートリアルはどのフレームワークでもアルゴリズム以外の部分を徹底的に隠蔽されている。下手すりゃアルゴリズムだって意識させない場合すらある。
機械学習系の仕事をしてる友人は、アルゴリズムももちろん触っているけど、データの入出力をうまいことやれたから商売になっている。
っていってて、極論、アルゴリズムを価値に変えているのはロジスティクスの部分。
活用したい人たちはアルゴリズムを作りたいわけじゃないから、ざっくりいうと
凄いらしいアルゴリズムに、うちのビジネスや活動から生まれるデータを繋いで有益な情報を得たい!!
って思ってる。
僕はアホなのでついついアルゴリズムを追って世界はすごいなぁと口を開けてることが多いけど、
一部の人以外にとってはいくら優秀なアルゴリズムもサービスインできなければ価値は産まない。
TensorFlowのResNetサンプルのロジスティクスを読み解く
ResNetの学習を実行する時
python cifar10_download_and_extract.py
python cifar10_main.py
こんな感じで動かしている。
環境さえ整っていれば2行で動くんだからすごい。
すごすぎてなにやってるんだかまるでわからん。
ensekitt.hatenablog.com
動かした時の記事はこちら。
1行目でやっていること
データセット(CIFAR-10)のダウンロード
具体的には?
- ダウンロード先のディレクトリを作成する
if not os.path.exists(FLAGS.data_dir): os.makedirs(FLAGS.data_dir)
- ダウンロードするべきファイルが無いか確認してダウンロード
if not os.path.exists(filepath): def _progress(count, block_size, total_size): sys.stdout.write('\r>> Downloading %s %.1f%%' % (filename, 100.0 * count * block_size / total_size)) sys.stdout.flush() filepath, _ = urllib.request.urlretrieve(DATA_URL, filepath, _progress) print() statinfo = os.stat(filepath) print('Successfully downloaded', filename, statinfo.st_size, 'bytes.')
Urllib.request.urlretrieve(ダウンロードしたいURL, 入れたいパス, コールバック関数)
コールバック関数ではダウンロードステータスを表示するコードが動いている。
- ダウンロードしてきたtarを解体する
tarfile.open(filepath, 'r:gz').extractall(FLAGS.data_dir)
対象ディレクトリにtarを解体する
どんなもんが出来ているのか確認する。
Cifar-10-batches-binというディレクトリができてる。
data_batch_[n].bin
test_batch.bin
があってそれぞれ1万枚ずつ画像が入っている。
バイナリ版の形式としては<粗いラベル1つ><細かいラベル1つ><3072 x ピクセルデータ>
って感じで入っている。
これでデータが調達できました。
これでも狂ったようにラベル付けたりしてないだけだいぶマシ。
Cifar-10についてとても詳しくまとまってて参考にさせていただいた。
aidiary.hatenablog.com