Le format de données pour stocker la formation/test est défini dans le document FSNS https://arxiv.org/pdf/1702.03970.pdf (tableau 4).
Pour stocker des fichiers tfrecord avec tf.Example Protos vous pouvez utiliser tf.python_io.TFRecordWriter. Il y a a nice tutorial, un answer on the stackoverflow existant et un short gist.
Supposons que vous avez un numpy ndarray img
qui a num_of_views
images côte-à-côte stockées (voir la figure 3 dans le paper.):
et un texte correspondant à une text
variable. Vous devez définir une fonction pour convertir une chaîne de caractères Unicode dans une liste de caractères ids rembourré à une longueur fixe et unpadded ainsi. Par exemple:
char_ids_padded, char_ids_unpadded = encode_utf8_string(
text='abc',
charset={'a':0, 'b':1, 'c':2},
length=5,
null_char_id=3)
le résultat devrait être:
char_ids_padded = [0,1,2,3,3]
char_ids_unpadded = [0,1,2]
Si vous utilisez des fonctions _int64_feature
et _bytes_feature
définies dans le gist vous pouvez créer un tf.Example compatible FSNS proto en utilisant un bout de code suivant:
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)
}
))
que vous avez pu obtenir ce travail pour vous? Pouvez-vous partager le script que vous avez utilisé pour préparer vos propres données? – Roger
Désolé, je reproduit pas le processus de préparation des ensembles de données à partir de mes propres images. Je suis coincé dans ce problème. https://stackoverflow.com/questions/45093932/invalidargumenterror-when-traing-attention-ocr-assign-requires-shapes-of-both –