我正在尝试在TensorFlow中实现cifar10模型。教程的代码在这里:链接。
文件cifar10_input.py处理以二进制形式的cifar10输入。我无法理解的是-
1) tf.FixedLengthRecordReader的功能。就我所能理解的,它接收二进制文件并将其表示为固定长度的记录。这非常不清楚。一个例子可能会有所帮助。
2) 变量“value”(tf.decode_raw的参数)。它包含什么内容,tf.decode_raw如何将“value”中的值转换为uint8?同样,一个例子可能会有所帮助。
长话短说,我需要一个工作示例来感受这三行代码实际上在做什么-
reader = tf.FixedLengthRecordReader(record_bytes=record_bytes)result.key, value = reader.read(filename_queue)record_bytes = tf.decode_raw(value, tf.uint8)
回答:
简短回答:请查看文档。
-
tf.FixedLengthRecordReaderhttps://www.tensorflow.org/versions/r0.10/api_docs/python/io_ops.html#FixedLengthRecordReader从文件中读取记录,其中“记录”只是固定数量的字节。它返回字符串张量。
-
tf.decode_raw:https://www.tensorflow.org/versions/r0.10/api_docs/python/io_ops.html#decode_raw接收一个字符串张量并将其转换为uint8张量。
您链接的CIFAR10示例是一个工作示例。尝试构建并玩弄它,以了解所有这些结构是如何组合在一起的。
希望这对您有帮助!