如何使用os.walk读取keras中的文本文件并转换为批处理数据集

2024-05-13 19:13:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有需要在keras和tensorflow中分析的文本文件。我使用os.walk读取文件路径并将其添加到列表中,然后尝试读取文本内容并使用keras和tensorflow对其进行批处理,如下所示

classes = []
labs={}
read_files = []
labels = []
path = "./data"
for root,folders,files in os.walk(path):
    itt = 0
    for folder in folders:
        labs[folder] = itt
        itt+=1
        classes.append(folder)
    for file in files:
        file = root+"/"+file
        file_class = file.split("/")[-2]
        labels.append(labs[file_class])
        read_files.append(root+"/"+file)


dataset = tf.data.TextLineDataset(read_files)
dataset = dataset.batch(batch_size)
print(next(dataset))

这些不是确切的代码,因为我正在处理几个文件,但一般来说,这就是我所做的,直到我得到错误

当我在最后一行上面运行代码时,会抛出一个错误

File "/home/kim/Desktop/programs/python/text_processing/prog/main.py", line 10, in <module>
    0.2,32)
File "/home/kim/Desktop/programs/python/text_processing/prog/text_process.py", line 44, in load_data
    print(next(train_set))
TypeError: 'BatchDataset' object is not an iterator

我想知道为什么这段代码不能工作,如果我在conda中使用tf 2.0.0,将非常感谢您对如何解决这一问题的任何帮助 或者甚至是关于更好的方法的建议,我仍然想知道如何将我的数据映射到验证和培训集


Tags: 代码textinforreaddatarootfiles