Подтвердить что ты не робот

TensorFlow: обучение на собственном изображении

Я новичок в TensorFlow. Я ищу помощь по распознаванию изображений, где я могу подготовить свой собственный образ.

Есть ли какой-нибудь пример для обучения новому набору данных?

4b9b3361

Ответ 1

Если вы заинтересованы в том, как вводить свои собственные данные в TensorFlow, вы можете посмотреть этот учебник.
Я также написал руководство по лучшим практикам для CS230 в Стэнфорде здесь.


Новый ответ (с tf.data) и с надписями

С введением tf.data в r1.4 мы можем создать партию изображений без заполнителей и без очередей. Шаги следующие:

  • Создайте список, содержащий имена файлов изображений и соответствующий список меток
  • Создайте tf.data.Dataset, чтобы прочитать эти имена и метки файлов
  • Предварительная обработка данных
  • Создайте итератор из tf.data.Dataset, который даст следующую партию

Код:

# step 1
filenames = tf.constant(['im_01.jpg', 'im_02.jpg', 'im_03.jpg', 'im_04.jpg'])
labels = tf.constant([0, 1, 0, 1])

# step 2: create a dataset returning slices of `filenames`
dataset = tf.data.Dataset.from_tensor_slices((filenames, labels))

# step 3: parse every image in the dataset using `map`
def _parse_function(filename, label):
    image_string = tf.read_file(filename)
    image_decoded = tf.image.decode_jpeg(image_string, channels=3)
    image = tf.cast(image_decoded, tf.float32)
    return image, label

dataset = dataset.map(_parse_function)
dataset = dataset.batch(2)

# step 4: create iterator and final input tensor
iterator = dataset.make_one_shot_iterator()
images, labels = iterator.get_next()

Теперь мы можем запускать непосредственно sess.run([images, labels]) без подачи каких-либо данных через заполнители.


Старый ответ (с очередями TensorFlow)

Подводя итог, вы имеете несколько шагов:

  • Создайте список имен файлов (например: пути к изображениям)
  • Создайте очередь имен файлов TensorFlow
  • Прочитайте и декодируйте каждое изображение, измените его размер до фиксированного размера (необходимо для пакетной обработки)
  • Вывести пакет этих изображений

Самый простой код:

# step 1
filenames = ['im_01.jpg', 'im_02.jpg', 'im_03.jpg', 'im_04.jpg']

# step 2
filename_queue = tf.train.string_input_producer(filenames)

# step 3: read, decode and resize images
reader = tf.WholeFileReader()
filename, content = reader.read(filename_queue)
image = tf.image.decode_jpeg(content, channels=3)
image = tf.cast(image, tf.float32)
resized_image = tf.image.resize_images(image, [224, 224])

# step 4: Batching
image_batch = tf.train.batch([resized_image], batch_size=8)