【问题标题】:python - Reading multiple CSVs for Keras LSTMpython - 为 Keras LSTM 读取多个 CSV
【发布时间】:2019-02-26 06:21:06
【问题描述】:

我正在尝试使用 Keras 实现 LSTM 网络,但在获取输入时遇到了问题。 我的数据集采用多个 CSV 文件的形式(所有文件的尺寸相同,均为 68x250,每个条目包含 2 个值)。各个类之间大约有 200 个 CSV 文件。 Preview of one of the CSVs

如何将这些多个 CSV 作为输入?

【问题讨论】:

    标签: python csv keras lstm


    【解决方案1】:

    我最近做了类似的事情,因为 Pedro 说你应该使用 fit_generator 并编写你的自定义生成器。

    这是一个生成器的示例:

    def generator(files):
        print('start generator')
        while 1:        
            print('loop generator')
            for file in files:
                try:                 
                    df = pd.read_csv(file)
                    batches = int(np.ceil(len(df)/batch_size))      
                    for i in range(0, batches):                                   
                        yield pad_batch(df[i*batch_size:min(len(df), i*batch_size+batch_size)])
    
                except EOFError:
                    print("error" + file) 
    

    您将文件名列表传递给生成器,它会遍历文件并批量返回内容。 load_data 在我的例子中是一个读取 pandas 中的 csvs 并进行一些预处理的函数。 pad_batch 为 LSTM 做填充。

    用法:

    model.fit_generator(
          generator=generator(trainingFiles),   
          steps_per_epoch=steps,
          epochs=num_epochs,
          validation_data=[x_test, y_test],
          verbose=1)
    

    【讨论】:

      【解决方案2】:

      定义一个实现接口的类: https://keras.io/utils/#sequence

      并使用方法 model.fit_generator。

      【讨论】:

        猜你喜欢
        • 2018-07-08
        • 2017-08-28
        • 1970-01-01
        • 2018-02-16
        • 1970-01-01
        • 2017-07-25
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多