いまさらだけどTensorFlowでCIFAR-10

加齢によるものと、鍛錬不足によるものと、日頃からゴロゴロしがちなのと、そういうのが全部混ざり合っちゃって、かなり脳みそが錆び付いている模様。TensorFlowを使う必要があるのに、錆び付いた脳みそのままではやっていけそうにないのよ ^^;
で、その錆を落とすのにちょうどいいかなと思ったのよね、TensorFlowの本家ホームページに掲載されている画像分類問題のチュートリアルが。

以前、TensorFlowのバージョンが0.いくつかのときにMNISTを使ったチュートリアルをやったのよね。もう当時のページを見つけられなかったよ。TensorFlowのバージョンアップにともなって、チュートリアルも更新されているんだね、きっと。
だからというわけじゃないけど、今回の錆落としにはCIFAR-10を使ったチュートリアルをやってみることにしたのよ。

英語のホームページを読む前にググってみたら、いい感じに日本語訳してくれているページがあったのよ。

  TensorFlow : Tutorials : 畳込み ニューラルネットワーク

これは助かる! 錆落としには最適! なぁ~んて思いながら読み進めていき、Pythonスクリプトを実行してみたのよね。そこで問題が2つ発生。
 

1. TensorFlowのAPIが変更されている

APIの名前や引数が変更されていて、Pythonスクリプトが動かない。そりゃ、頻繁にバージョンアップしてるTensorFlowだから、当然そういう変更もあるだろうね。
本家のTransitioning to TensorFlow 1.0というページ、ここに変更点が列挙されていて、その通りに修正したら無事動きました。

そもそも、日本語訳してくれているページが対象としてる(た)TensorFlowのバージョンは古いので、当然、そのページが参照しているPythonスクリプトも古いものなんだね。本家の最新のページ(CIFAR-10を使ったチュートリアル)が参照しているPythonスクリプトを確認したら、ちゃんと修正されているようなので、最初から本家のホームページを頼るべきだったんだなと ^^;
 

2. GPUを使ってくれない

どうも、計算時にGPUを使ってくれていないみたいで、とっても遅い。だから、計算途中で強制終了せざるを得なかったよ (T_T)
まぁ、ちゃんと計算はしてくれているみたいだから、Pythonスクリプトが動いたかどうかっていう点ではOKっちゃぁOKなんだけど。私はGPU版のTnesorFlowしかインストールしていないのに、それでもCPUで計算しちゃう。ちょっと気持ち悪いのよね。

それにね、CPUで計算するのとGPUでやるのとでは、計算速度が100倍とは言わないけど 10~20倍は違うから、仕事で使うときには絶対にGPUに頑張ってもらわなきゃならないのよ。
この問題はちょっと錆落としついでには解決できそうにないので、重要度を下げるわけじゃないけど、この作業は少しだけ後回し ^^;

 

 

仕事に直接的な関係はないし、中身もなんとなぁ~くしか理解できていないけど、MNISTの文字認識(分類)やCIFAR-10の画像認識(分類)って面白そうだね。
いま、この分野の進歩は目覚ましいみたいだから、最先端のものはできなくても、MNISTやCIFAR-10を使ったチュートリアルの中身くらいはもっと理解したい。なんかこう、知的好奇心が湧いてくるってやつよね (^^)

広告