Ich habe eine Reihe von tfrecord Dateien, die mit build_imagenet_data.py aus einem Ordner von Bildern generiert werden. Jetzt möchte ich die Prozedur umkehren und Bilddateien aus tfrecord-Dateien extrahieren und im Speicher ablegen. Gibt es einen Weg, dies zu tun?Bild von tfrecord wiederherstellen und auf der Festplatte speichern
0
A
Antwort
1
Hier ist ein Beispielcode, um loszulegen.
with tf.device('/cpu:0'):
tf.reset_default_graph()
# here a path to tfrecords file as list
fq = tf.train.string_input_producer(tf.convert_to_tensor([/path/to/tfrecordsfiles]), num_epochs=1)
reader = tf.TFRecordReader()
_, v = reader.read(fq)
fk = {
'image/encoded': tf.FixedLenFeature((), tf.string, default_value='')}
ex = tf.parse_single_example(v, fk)
image = tf.image.decode_jpeg(
ex['image/encoded'], dct_method='INTEGER_ACCURATE')
with tf.Session() as sess:
coord = tf.train.Coordinator()
tf.train.start_queue_runners(coord=coord, sess=sess)
sess.run([tf.global_variables_initializer(),
tf.local_variables_initializer()])
# set the number of images in your tfrecords file
num_images=100
for i in range(num_images):
try:
im_ = sess.run(image)
# chnage the image save path here
cv2.imwrite('/tmp/test' + str(i) + '.jpg', im_)
except Exception as e:
print(e)
break
0
Hier ist der Code, der für mich funktioniert. Es stammt ursprünglich aus der vorherigen Antwort von Ishant Mrinal. Ich füge nur einige Änderungen hinzu:
#get the number of records in the tfrecord file
c = 0
for record in tf.python_io.tf_record_iterator(tfrecords_filename):
c += 1
totalFiles+=c
logfile.write(" {} : {}".format(f, c))
logfile.flush()
print("going to restore {} files from {}".format(c,f))
tf.reset_default_graph()
# here a path to tfrecords file as list
fq = tf.train.string_input_producer([tfrecords_filename], num_epochs=fileCount)
reader = tf.TFRecordReader()
_, v = reader.read(fq)
fk = {
'image/encoded': tf.FixedLenFeature((), tf.string, default_value=''),
'image/class/synset': tf.FixedLenFeature([], tf.string, default_value=''),
'image/filename': tf.FixedLenFeature([], tf.string, default_value='')
}
ex = tf.parse_single_example(v, fk)
image = tf.image.decode_jpeg(ex['image/encoded'], dct_method='INTEGER_ACCURATE')
label = tf.cast(ex['image/class/synset'], tf.string)
fileName = tf.cast(ex['image/filename'], tf.string)
# The op for initializing the variables.
init_op = tf.group(tf.global_variables_initializer(),
tf.local_variables_initializer())
with tf.Session() as sess:
sess.run(init_op)
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
# sess.run([tf.global_variables_initializer(),tf.local_variables_initializer()])
# set the number of images in your tfrecords file
num_images=c
print("going to restore {} files from {}".format(num_images, f))
for i in range(num_images):
im_,lbl,fName = sess.run([image,label,fileName])
lbl_=lbl.decode("utf-8")
savePath=os.path.join(output_path,lbl_)
if not os.path.exists(savePath):
os.makedirs(savePath)
fName_=os.path.join(savePath, fName.decode("utf-8").split('_')[1])
# chnage the image save path here
cv2.imwrite(fName_ , im_)
coord.request_stop()
coord.join(threads)
Verwandte Themen
- 1. Speichern und Lesen der Variablengrößenliste von TFRecord
- 2. Raspivid auf der Festplatte speichern und gleichzeitig
- 3. Wie aufgenommene Bild auf der Festplatte zu speichern, mit Pygame
- 4. Speichern der HTML 5 Leinwand Bild auf lokaler Festplatte
- 5. Speichern von benutzerdefinierten Sprite als Bild auf lokale Festplatte
- 6. Speichern Sie Bild von URL auf lokaler Festplatte mit C#
- 7. Speichern und Wiederherstellen von CGContext
- 8. Wiederherstellen von Daten von formatierter Festplatte
- 9. Speichern thrift-serialisierte Objekte auf der Festplatte
- 10. Aktivitätsstatus speichern und wiederherstellen
- 11. Log4J kann von Festplatte voll wiederherstellen?
- 12. Speichern von PDF auf lokaler Festplatte C#
- 13. Speichern spezifische eingehende Nachrichten auf der Festplatte
- 14. HTML5 Speichern und Wiederherstellen von Status in der Datenbank
- 15. Speichern und Wiederherstellen von Formularposition und -größe
- 16. Multilayer RasterBrick auf Festplatte speichern
- 17. RavenDB Speichern auf Festplatte Abfrage
- 18. XML-Datei auf Festplatte speichern
- 19. Speichern und Datum auf Firebase wiederherstellen?
- 20. Speichern UIIage Array auf Festplatte
- 21. Speichern und Wiederherstellen von Verbindungen mit XIFF
- 22. HoloLens - Foto in Unity speichern und auf Festplatte speichern
- 23. Speichern von WebView und Wiederherstellen in ANDROID
- 24. Datenstrukturoptionen zum effizienten Speichern von Ganzzahlpaaren auf der Festplatte?
- 25. Speichern/Schreiben NSMutableArray von Objekten auf der Festplatte?
- 26. Datei im Browser hochladen und erneut auf meiner Festplatte speichern
- 27. Geerbte Dockerfile speichern und wiederherstellen USER-Einstellung
- 28. Speichern und Wiederherstellen von WhatsApp Login-Informationen
- 29. JQUERY: Attributdaten speichern und wiederherstellen
- 30. ClarifAI Python API: Passing Bild von Webcam aufgenommen, API, ohne auf der Festplatte zu speichern
Vielen Dank für die Antwort. Es funktionierte mit einigen Modifikationen. –