TensorFlow cifar10_eval.py のオリジナル画像で試す。

TenserFlow のサンプルプログラムの CIFAR-10 で
cifar10_eval.py で、自分で作った画像を使って評価するプログラム例が出ていたので、
試してみました。

参考にさせてもらったのは、こちらのページの
自前の画像で予測してみる ですが

http://blog.suprsonicjetboy.com/entry/2017/04/30/204951

実際に試してみると、saver = tf.train.Saver(variables_to_restore) エラーになりました。


なにか、Restore した形式と、合致していない云々...のエラーのような?


仕方が無いので、自分で色々トライ・アンド・エラーで試して、何分、TensorFlow の勉強を始めて、1ヶ月そこそこなので、何もわからず、しまいには、力仕事になりましたが、
どうにか実行できるようになりました。

結論を先に言ってしまえば、評価したい画像を tf.read_file()で読み込んで、
tf.image.decode_jpeg 等で加工するまでは良いのですが、

cifar10.inference() で渡す際には、128個のバッチ形式 にしないとエラーになるようです。

おんちゃんが CIFAR-10 のサンプルをダウンロードしたのが、2017/12/29 だったのですが、
どうやら、参考にしたサイトの CIFAR-10版 とおんちゃんがダウンロードした版とで処理内容が
変わっているようです。

それに対応したコードは、こちらです。

序に、具体的関数は、こちらです。

その後、cifar10.py で指定しているのが判かりました。
FLAGS.batch_size=128
cifar10_train.py を実行した時に、指定した値に合わせるみたいです。


H29年の暮れから、H30年の正月3ヶ日は、これで潰れました。
やれやれです。おんちゃんのH30年の正月もやっと迎えれます。

by おんちゃん 2018.1.3 

後書き 1)
実際に試してみると、saver = tf.train.Saver(variables_to_restore) エラーになりました。

なにか、Restore した形式と、合致していない云々...のエラーのような?

後でこのログをよくよく見てみると、
local3/weights
とあるので、これは、
cifar10.py の inference() の中の、local3 の定義だと何と無く、見て取れます。

結局、該当箇所を、下記の様に変更すれば、1個の画像でもOKとなりました。

そうすると、結局、tf.expand_dims() で先頭に1次元追加の、擬似バッチで、OKになりした。

このブログ記事について

このページは、おんちゃんが2018年1月 3日 16:21に書いたブログ記事です。

ひとつ前のブログ記事は「OpenCV3.3.1 顔認識とトラッキングのサンプルプログラム #2」です。

次のブログ記事は「CNTK 2.4 CNTK_201B_CIFAR-10_ImageHandsOn の不具合」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ