在 TensorFlow 中将多个字节读入单个值
Reading multiple bytes into a single value in TensorFlow
我正在尝试以与 TensorFlow 中的 cifar10 示例中所述类似的方式读取标签:
....
label_bytes = 2 # it was 1 in the original version
result.key, value = reader.read(filename_queue)
record_bytes = tf.decode_raw(value, tf.uint8)
result.label = tf.cast(tf.slice(record_bytes, [0], [label_bytes]), tf.int32)
....
问题是,如果 label_byte
大于 1(例如,2),result.label
似乎变成了两个元素的张量(每个元素都是 1 字节)。我只想将连续的 label_bytes
字节表示为单个值。我该怎么做?
谢谢
创建第二个解码器,用它解码 int16 并将第一个元素作为标签
shorts = tf.decode_raw(value, tf.int16)
result.label = tf.cast(shorts[0], tf.int32)
可能有更好的解决方案,但它有效。
我正在尝试以与 TensorFlow 中的 cifar10 示例中所述类似的方式读取标签:
....
label_bytes = 2 # it was 1 in the original version
result.key, value = reader.read(filename_queue)
record_bytes = tf.decode_raw(value, tf.uint8)
result.label = tf.cast(tf.slice(record_bytes, [0], [label_bytes]), tf.int32)
....
问题是,如果 label_byte
大于 1(例如,2),result.label
似乎变成了两个元素的张量(每个元素都是 1 字节)。我只想将连续的 label_bytes
字节表示为单个值。我该怎么做?
谢谢
创建第二个解码器,用它解码 int16 并将第一个元素作为标签
shorts = tf.decode_raw(value, tf.int16)
result.label = tf.cast(shorts[0], tf.int32)
可能有更好的解决方案,但它有效。