繁体   English   中英

将带有数据和标签的 txt 文件读入 tensorflow

[英]Read txt-file with data and labels into tensorflow

我对 tensorflow 比较陌生,因此我在数据准备方面遇到了困难。 我有一个包含大约 500 个.txt文件的文件夹。 这些文件中的每一个都包含数据和数据的 label。 (数据代表 MFCC,它们是为 .wav 音频文件的每个“帧”生成的音频特征。)

每个文件如下所示:

1
1.013302233064514191e+01
-1.913611804400369110e+01
1.067932213100989847e+00
1.308777013246182364e+01
-3.591032944037165109e+00
1.294307486784356698e+01
5.628056691023937574e+00
5.311223121033092909e+00
1.069261850699697014e+01
4.398722698218969995e+00
5.045254154360372389e+00
7.757820364628694954e+00
-2.666228281486863416e+00

9.236707894117541784e+00
-1.727334954006132151e+01
5.166050472560470119e+00
6.421742650353079007e+00
2.550240091606466031e+00
9.871269941885440602e+00
7.594591526898561984e-01
-2.877228968309437196e+00
5.592507658015017924e-01
8.828475996369435919e+00
2.946838169848354561e+00
8.420693074096489150e-01
7.032494888004835687e+00

...

在每个文件的第一行,我得到了数据的label(本例为1)。 在文件的 rest 中,我得到了 13 个数字,代表每帧 13 个 MFCC。 每个帧 MFCC 用换行符分隔。

所以我的问题是将所有这些文件的内容转换为张量以便 tensorflow 可以使用它们的简单方法是什么?

谢谢!

不确定这是否是优化的做法,但可以按照以下步骤中的说明完成:

  1. 遍历每个Text File和 append 其数据到List
  2. 将每个元素中的'\n'替换为','因为我们的目标是从中创建CSV
  3. 将 List 中以逗号分隔的元素写入CSV File
  4. 最后,使用tf.data.experimental.make_csv_dataset将 CSV 文件转换为Tensorflow Dataset 请参阅本教程,了解如何将CSV File转换为Tensorflow Dataset

执行上述前三个步骤的代码如下:

import os
import pandas as pd

# The Folder where all the Text Files are present
Path_Of_Text_Files = '/home/mothukuru/Jupyter_Notebooks/Stack_Overflow/Text_Files'
List_of_Files = os.listdir(Path_Of_Text_Files)

List_Of_Elements = []
# Iterate through each Text File and append its data to a List
for EachFile in List_of_Files:
    with open(os.path.join(Path_Of_Text_Files, EachFile), 'r') as FileObj:
        List_Of_Elements.append(FileObj.readlines())

# Below code is to remove '\n' at the end of each Column
for i in range(len(List_Of_Elements)):
    List_Of_Elements[i] = [sub.replace('\n', ',') for sub in List_Of_Elements[i]] 

Column_Names = ['Label,', 'F1,', 'F2,', 'F3,', 'F4,', 'F5,', 'F6,', 'F7,',
                                                             'F8,', 'F9,', 'F10,', 'F11,', 'F12,', 'F13']    

# Write the Data in the List, List_Of_Elements to a CSV File
with open(os.path.join(Path_Of_Text_Files, 'Final_Data.csv'), 'w') as FileObj:
        FileObj.writelines(Column_Names)
        
for EachElement in List_Of_Elements:
    with open(os.path.join(Path_Of_Text_Files, 'Final_Data.csv'), 'a') as FileObj:
        FileObj.write('\n')
        FileObj.writelines(EachElement)

Path_Of_Final_CSV = os.path.join(Path_Of_Text_Files, 'Final_Data.csv')
Data = pd.read_csv(Path_Of_Final_CSV, index_col = False)

要检查我们的数据是否正常, print(Data.head())将 output 以下数据:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM