Tensorflow 中的 Reader 共有三个版本。
-
tf.TFRecordReader
,用于读取TFRecord文件
-
tf.FixedLengthRecordReader
,用于读取二进制文件
-
tf.TextLineReader
,用于读取CSV文件
但是我应该如何读取 .mat 文件格式?我应该使用哪种阅读器?有没有读取.mat文件的阅读器?
描述:
目前,我正在制作一个小型 CNN 模型,用于使用以下方法对房屋数量进行分类街景房屋号码 http://ufldl.stanford.edu/housenumbers/数据集。该数据集采用.mat文件格式,是一个大型数据集。如果我使用 Tensorflow 内置读取机制读取数据集,将会很有帮助。但我应该使用哪个阅读器呢?
如果你不想使用TFRecords
这是一种使用方法tf.py_func
to get .mat
通过导入的文件tf.data.Dataset
API.
def read_mat(filepath):
def _read_mat(filepath):
matfile = sio.loadmat(filepath)
data0 = matfile['data0']
data1 = matfile['data1']
data2 = mat_contents['data2']
shape0 = matfile['data0'].shape
return data0, data1, data2, np.asarray(shape0)
output = tf.py_func(_read_mat, [filepath], [tf.double, tf.uint16, tf.double, tf.int64])
shape = output[3]
data0 = tf.reshape(output[0], shape)
data1 = tf.reshape(output[1], shape)
data2 = tf.reshape(output[2], shape)
return data0, data1, data2
dataset = tf.data.Dataset.list_files('*.mat')
dataset = dataset.map(read_mat, num_parallel_calls=16)
dataset = dataset.repeat(100)
dataset = dataset.batch(8)
dataset = dataset.prefetch(8)
iterator = dataset.make_initializable_iterator()
sess = tf.Session()
sess.run(iterator.initializer)
values = sess.run(iterator.get_next())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)