tensorflow dataset

tensorflow - ¿Cómo crear un conjunto de datos en el mismo formato que el conjunto de datos FSNS?



dataset (2)

El formato de datos para almacenar la capacitación / prueba se define en el documento FSNS https://arxiv.org/pdf/1702.03970.pdf (Tabla 4).

Para almacenar archivos tfrecord con tf. Ejemplos de protos puede usar tf.python_io.TFRecordWriter . Hay un buen tutorial , una respuesta existente en el stackoverflow y una breve descripción .

Suponga que tiene una imagen ndarray numpy que tiene imágenes num_of_views almacenadas una al lado de la otra (consulte la Fig. 3 en el https://arxiv.org/pdf/1702.03970.pdf ): y un texto correspondiente en un text variable. Deberá definir alguna función para convertir una cadena Unicode en una lista de identificadores de caracteres rellenados a una longitud fija y también sin relleno. Por ejemplo:

char_ids_padded, char_ids_unpadded = encode_utf8_string( text=''abc'', charset={''a'':0, ''b'':1, ''c'':2}, length=5, null_char_id=3)

el resultado debería ser:

char_ids_padded = [0,1,2,3,3] char_ids_unpadded = [0,1,2]

Si usa las funciones _int64_feature y _bytes_feature definidas en la esencia , puede crear un tf compatible con FSNS. Ejemplo de proto usando un fragmento de código siguiente:

char_ids_padded, char_ids_unpadded = encode_utf8_string( text, charset, length, null_char_id) example = tf.train.Example(features=tf.train.Features( feature={ ''image/format'': _bytes_feature("PNG"), ''image/encoded'': _bytes_feature(img.tostring()), ''image/class'': _int64_feature(char_ids_padded), ''image/unpadded_class'': _int64_feature(char_ids_unpadded), ''height'': _int64_feature(img.shape[0]), ''width'': _int64_feature(img.shape[1]), ''orig_width'': _int64_feature(img.shape[1]/num_of_views), ''image/text'': _bytes_feature(text) } ))

Estoy trabajando en este project basado en TensorFlow.

Solo quiero entrenar un modelo de OCR portention_ocr basado en mis propios conjuntos de datos, pero no sé cómo almacenar mis imágenes y la verdad básica en el mismo formato que los conjuntos de datos FSNS.

¿Alguien también trabaja en este proyecto o sabe cómo resolver este problema?


No debe usar el siguiente código directamente:

"''image/encoded'': _bytes_feature(img.tostring()),"

En mi código, escribí esto:

_,jpegVector = cv2.imencode(''.jpeg'',img) imgStr = jpegVector.tostring() ''image/encoded'': _bytes_feature(imgStr)