如何在tensorflow中读取.mat文件格式?

2023-12-24

Tensorflow 中的 Reader 共有三个版本。

  1. tf.TFRecordReader,用于读取TFRecord文件
  2. tf.FixedLengthRecordReader,用于读取二进制文件
  3. 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(使用前将#替换为@)

如何在tensorflow中读取.mat文件格式? 的相关文章

随机推荐