Python 将包含数据和标签的txt文件读入tensorflow

Python 将包含数据和标签的txt文件读入tensorflow,python,tensorflow,mfcc,Python,Tensorflow,Mfcc,我对tensorflow相对来说比较陌生,所以我正在努力准备数据。 我有一个文件夹,里面有大约500个.txt文件。每个文件都包含数据和数据标签。(数据表示MFCC,MFCC是为.wav音频文件的每个“帧”生成的音频功能。) 这些文件中的每个文件如下所示: 1 1.013302233064514191e+01 -1.913611804400369110e+01 1.067932213100989847e+00 1.308777013246182364e+01 -3.591032944037165

我对tensorflow相对来说比较陌生,所以我正在努力准备数据。 我有一个文件夹,里面有大约500个
.txt
文件。每个文件都包含数据和数据标签。(数据表示MFCC,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

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

所以我的问题是,有什么简单的方法可以将所有这些文件的内容转换成张量,这样tensorflow就可以使用它们了


谢谢

不确定这是否是优化的方法,但可以按照以下步骤进行:

  • 迭代每个
    文本文件
    ,并将其数据附加到
    列表
  • 将每个元素中的
    '\n'
    替换为
    ,“
    ,因为我们的目标是从中创建
    CSV
  • 将列表中元素以逗号分隔的元素写入
    CSV文件
  • 最后,使用将CSV文件转换为Tensorflow数据集。有关如何将
    CSV文件
    转换为
    Tensorflow数据集
    的信息,请参阅
  • 执行上述前三个步骤的代码如下:

    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())
    将输出以下数据: