Ich mache einige Experimente beim Lesen von Daten mit Tensorflow Warteschlange, und ich möchte einen einfachen Fall unten fragen.Wie liest man benutzerdefiniertes Datenformat in Tensorflow mit FixedLengthRecordReader?
Angenommen, meine Binärdatendateien haben eine Liste von float
Wert (4 Byte) und boolean
Label (1 Byte). Zum Beispiel
3.4 true 2.1 false 0.3 true ..."
Folgendes ist meine Testversion. Ich möchte einen 4-Byte-Teil (Umwandlung in float
) und 1-Byte-Teil (Umwandlung in bool
) schneiden. Ich bin mir jedoch nicht sicher, wie man in diesem Fall decode_raw()
verwendet. Wenn ich uint8
verwende, schneidet es jedes Byte ab.
Wenn es falsch ist, FixedLengthRecordReader
zu verwenden, was ist ein einfacher Weg, dies zu tun? Kann mir jemand helfen?
# Dimensions of data
data_bytes = 4
label_bytes = 1
record_bytes = data_bytes + label_bytes
reader = tf.FixedLengthRecordReader(record_bytes=record_bytes)
key, value = reader.read(filename_queue)
value = tf.decode_raw(value, tf.uint8)
data_part = tf.cast(tf.slice(value, [0], [data_bytes]), tf.float32)
label_part = tf.cast(tf.slice(value, [data_bytes], [label_bytes]), tf.bool)
Für diejenigen, die sich wundern, funktioniert dieser Vorschlag gut. Vielen Dank. –