前言
最近在看到一个代码时,里面用到了tf.train.Example,于是学习了其用法,这里记录一下,也希望能对其他朋友有用。
另外,本文涉及的代码基于python 3.6.5
tensorflow 1.8.0
tf.train.Example主要用在将数据处理成二进制方面,一般是为了提升IO效率和方便管理数据。下面按调用顺序介绍使用tf.train.Example涉及的几个类。
tf.train.BytesList等
现在我们有一个data.txt文件,内容如下:
21
This is a test data file.
We will convert this text file to bin file.
文件中第一行是个整数,第二行和第三行都是字符串。这是我们处理的原始数据。
我们先使用下面的代码将数据读进来:
import struct
import tensorflow as tf
def read_text_file(text_file):
lines = []
with open(text_file, "r") as f:
for line in f:
lines.append(line.strip())
return lines
def text_to_binary(in_file, out_file):
inputs = read_text_file(in_file)
with open(out_file, 'wb') as writer:
pass
if __name__ == '__main__':
text_to_binary('data.txt', 'data.bin')
格式化原始数据可以使用tf.train.BytesList
tf.train.Int64List
tf.