我有大量带有标签 (.mat) 文件(不能使用tf.data.Dataset.from_tensor_slices())的图像,我想使用tf.dataAPI 从中制作 tensorflow 数据集。
正如我在文档中读到的,我可以使用tf.data.TextLineDataset大量数据(我必须有一个包含所有图像地址的 txt 文件,并将 txt 文件的路径作为tf.data.TextLineDataset参数发送)。然后,我可以使用map方法读取 txt 文件 ( tf.read_file) 解码 jpg 图像 ( tf.image.decode_jpeg) 并对图像进行一些基本的转换。
但是,我无法scipy.io.loadmat在map方法的任何部分使用,因为我没有指示 mat 文件路径的字符串。我所拥有的只是tf.Tensor.
我不认为在这种情况下读取所有图像并从中制作 TFRecord 有那么高的效率,因为那样我基本上每件事都会做两次。一次,读取整个图像并制作 TFRecord,再一次,读取 TFRecord 以制作 tensorflow 数据集。
知道如何解决这个问题吗?
这是我的代码:
dataset = tf.data.TextLineDataset(txt_file).map(read_img_and_mat)
接着:
def read_img_and_mat(path):
image_string = tf.read_file(path)
image_decoded = tf.image.decode_jpeg(image_string, channels=3)
label = ... # get label from mat file
return image_decoded, label
相关分类