J'essaie de créer mes propres données d'entraînement pour le modèle TextSum. Comme je le comprends, je dois mettre mes articles et résumés dans un fichier binaire (dans TFRecords). Cependant, je ne peux pas créer mes propres données d'apprentissage à partir de fichiers texte bruts. Je ne comprends pas le format très clairement, donc je suis en train de créer un fichier binaire très simple en utilisant le code suivant:Tensorflow - Modèle TextSum: Comment créer mes propres données d'entraînement
files = os.listdir(path)
writer = tf.python_io.TFRecordWriter("test_data")
for i, file in enumerate(files):
content = open(os.path.join(path, file), "r").read()
example = tf.train.Example(
features = tf.train.Features(
feature = {
'content': tf.train.Feature(bytes_list=tf.train.BytesList(value=[content]))
}
)
)
serialized = example.SerializeToString()
writer.write(serialized)
Et j'essaie d'utiliser le code suivant pour lire la valeur de ce fichier test_data
reader = open("test_data", 'rb')
len_bytes = reader.read(8)
str_len = struct.unpack('q', len_bytes)[0]
example_str = struct.unpack('%ds' % str_len, reader.read(str_len))[0]
example_pb2.Example.FromString(example_str)
mais je reçois toujours l'erreur suivante:
File "dailymail_corpus_to_tfrecords.py", line 34, in check_file
example_pb2.Example.FromString(example_str)
File "/home/s1510032/anaconda2/lib/python2.7/site-packages/google/protobuf/internal/python_message.py", line 770, in FromString
message.MergeFromString(s)
File "/home/s1510032/anaconda2/lib/python2.7/site-packages/google/protobuf/internal/python_message.py", line 1091, in MergeFromString
if self._InternalParse(serialized, 0, length) != length:
File "/home/s1510032/anaconda2/lib/python2.7/site-packages/google/protobuf/internal/python_message.py", line 1117, in InternalParse
new_pos = local_SkipField(buffer, new_pos, end, tag_bytes)
File "/home/s1510032/anaconda2/lib/python2.7/site-packages/google/protobuf/internal/decoder.py", line 850, in SkipField
return WIRETYPE_TO_SKIPPER[wire_type](buffer, pos, end)
File "/home/s1510032/anaconda2/lib/python2.7/site-packages/google/protobuf/internal/decoder.py", line 791, in _SkipLengthDelimited
raise _DecodeError('Truncated message.')
google.protobuf.message.DecodeError: Truncated message.
Je ne sais pas ce qui est faux. S'il vous plaît laissez-moi savoir si vous avez des suggestions pour résoudre ce problème.
quel système d'exploitation ne vous obtenez ce Sur OSX 11, je suis confronté à des problèmes avant même d'arriver ici. J'ai dû modifier la méthode 'Train' afin que le superviseur attende que les threads s'arrêtent. – Jordan
J'utilise OSX en cours d'exécution. J'ai aussi essayé de l'utiliser sous Unix et ça fonctionnait bien. Mais il y a une petite erreur dans ma solution, nous devrions utiliser 'reader.read (4)' pour sauter 4 octets dans 'data.py' au lieu d'utiliser' seek (12) '. Je vais mettre à jour mon post –