Я пытаюсь построить нейронную сеть для идентификации и генерации строк, соответствующих символам, найденным на изображении (a-z, A-Z, 0-9).
Я использую набор данных Char74kFnt
Все мои поезда / тестовые изображения / метки являются массивами. Каждый из 62 классов персонажей имеет 1016 изображений. Таким образом, общее количество изображений составляет 62992. Я выбрал 75% набора данных для обучающих данных. Первоначально метки поезда / теста были самими символами, но это дало мне ошибки в значениях (например: Ошибка преобразования строки в плавающее число ' b '), поэтому я отобразил int (ord (x)) на метки. Мои данные поезда / теста отформатированы следующим образом в массиве numpy:
- train & test_images.shape (x, 128,128), например: 128x128 размер изображения
- Значения:
train & test_images (0: 1016,128,128) соответствует всем '0'
.
.
.
train & test_images (61976:, 128,128) соответствует всем 'z'
- значения нормализованы для всех изображений (х / 255)
- И эти изображения соответствуют размерам / соответствуют правильному индексу метки поезда и теста.
Моя проблема в том, что, когда я тренирую эту модель, я остаюсь с 0% точностью и нанопотерями (см. Код)
from Char74k import Char74kFntDataSet
import numpy as np
import tensorflow as tf
from tensorflow import keras
a=Char74kFntDataSet()
model = keras.Sequential([
keras.layers.Flatten(input_shape=(128, 128)),
keras.layers.Dense(120, activation=tf.nn.relu),
keras.layers.Dense(62, activation=tf.nn.softmax)
])
model.compile(optimizer=tf.train.AdamOptimizer(),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(a.train_images, a.train_labels, epochs=2)
Возможно ли, что мой набор данных недостаточно велик? Или есть какая-то простая ошибка (неидеальный параметр, возможный неверный / неидеальный ввод данных и т. Д.) Или другая конкретная модель, которую я должен использовать вместо этого?
Следующий фрагмент командной строки показывает точность 0%:
Epoch 1/2
47244/47244 [==============================] - 43s 908us/step - loss: nan - acc: 0.0000e+00
Epoch 2/2
47244/47244 [==============================] - 28s 587us/step - loss: nan - acc: 0.0000e+00
15748/15748 [==============================] - 12s 749us/step
Test accuracy: 0.0