Python Tensorflow连接tf.data.Dataset.list_文件

Python Tensorflow连接tf.data.Dataset.list_文件,python,file,validation,tensorflow,Python,File,Validation,Tensorflow,我在具有以下命名转换的数据集上运行当前代码: 培训文件:培训-??-??在哪里??是通配符(任何范围的占位符)。 验证和测试文件(例如验证-??-??)也有相同的转换 在我的代码中,我创建了如下文件模式: training_file_pattern = os.path.join(config['data_dir'], "training-??-of-??") 但现在我想同时在验证和训练集上训练我的模型。但我在想如何获取这两个数据集时遇到了问题。对于培训,我会: tf_data_files =

我在具有以下命名转换的数据集上运行当前代码:

培训文件:培训-??-??在哪里??是通配符(任何范围的占位符)。 验证和测试文件(例如验证-??-??)也有相同的转换

在我的代码中,我创建了如下文件模式:

training_file_pattern = os.path.join(config['data_dir'], "training-??-of-??") 
但现在我想同时在验证和训练集上训练我的模型。但我在想如何获取这两个数据集时遇到了问题。对于培训,我会:

tf_data_files = tf.data.Dataset.list_files(training_file_pattern, seed=1234, shuffle=self.shuffle)
我想对验证集执行相同的操作,并将其连接为如下所示:

tf_data_files = tf.concat(tf_data_files, tf.data.Dataset.list_files(validation_file_pattern, seed=1234, shuffle=self.shuffle))
但它不能正常工作。正确的方法是什么? 我还尝试以不同的方式定义file_模式以包含验证,但我不知道如何在不同时使用测试集的情况下实现(它们都在同一个文件夹中)。所以我不能这样做:

training_and_validation_file_pattern = os.path.join(config['data_dir'], "?-??-of-??") 
因为这也会使测试集正确吗


任何帮助都将不胜感激。

如果我明白你的意思,你只需做就行了

dataset = tf.data.Dataset.list_files(os.listdir('path'))
dataset = tf.data.TextLineDataset(dataset)
Dataset API还具有连接方法

dataset = dataset_1.concatenate(dataset_2)
但还不完全清楚你是否需要它 编辑:
list_文件
将使用文件名创建数据集 dataset=tf.data.dataset.list_文件(['f1.csv','f2.csv'])

我使用TF2.0版本只是为了清楚起见。 另一方面,
tf.data.TextLineDataset()
从文本文件输出实际值,如

tf.Tensor(b'0.7079635943784122,0.9659163071487907'

因此,仅使用
list\u文件
将从文件而不是其内容创建数据集,并且需要对数据集应用附加的解析函数

不,我不想连接,我想从具有不同命名结构的目录中获取所有数据。你们第一行是做什么的?通过四处搜索,我意识到我可能可以只做这个
tf\u data\u files=tf.data.Dataset.list\u文件([training\u file\u pattern,validation\u file\u pattern],seed=1234,shuffle=self.shuffle)
。我不确定这是否是正确的方法,但它不会引发任何错误。但我不确定这是否真的是双管齐下。如果有人能澄清这是否有效,我将不胜感激。谢谢这让事情变得更清楚了,但我在最后的评论中写的是正确的吗?我可以在一个“数组”(见括号)中使用更多路径,从而创建一个包含这些路径中所有文件的数据集?当然,使用os模块,您可以将更复杂的路径传递给tf数据集
tf.Tensor(b'0.7079635943784122,0.9659163071487907'