tensorflowメモ(手書き文字認識その4)
前回の続き。
精度を上げることを試みる。
tensorflowサンプル(「examples/tutorials/mnist/mnist_deep.py」)を参考にレイヤーを構成。
"Fully connected layer 1"(上表のfc1)のdownsamplingはMNISTサンプルをもとに適当に設定。
「256」(=2 * 2 * 64)featuresから「96」featuresへ。
MNISTサンプルだと、「3136」(=7 * 7 * 64)featuresから「1024」featuresへ。
(参考)kerasのmodel.summary()によるモデル表示
学習で更新されるパラメータ数の内訳
# conv2d_2 Layer filter: 3row * 3col * 32channel * 64channel = 18432 bias : 64 # dense_1 Layer weight : 256row * 96col = 24576 bias : 96col
以下のとおり設定して学習。
- "probability of dropout"(上表のdropout)は「0.5」
- エポックは「500」
- オプティマイザは「tf.train.GradientDescentOptimizer」
- 損失関数は「交差エントロピー誤差」
途中、畳み込み層のパラメータが「Nan」になってしまったが、最大で99%後半の精度が出た。
ラベル値と推測値が異なっていた画像を見てみる。
「5」とラベル付け、「4」と推測
「8」とラベル付け、「9」と推測