【问题标题】:How to train a CNN model on multiple CSV files?如何在多个 CSV 文件上训练 CNN 模型?
【发布时间】:2021-08-17 02:45:58
【问题描述】:

我有一个包含保存为温度值 csv 文件的热图像的数据集(我有 3 个类的 2300 个 csv 文件,一个文件 csv 有 640 列和 512 行)。我想使用这些数据来训练 CNN 模型,但我不知道如何导入这些 csv 文件进行训练。我使用 pd.read_csv("file1.csv") 读取 csv 文件。
下面是一个数据示例: CSV 文件: Here is the complete CSV file

csv 文件的一部分:

和热图像(图像尺寸为640x512):

我有点困惑,我什至应该在谷歌上搜索什么。你能帮我解决这个问题吗?

【问题讨论】:

  • 将这些 iamges 保存为 csv 文件有什么具体原因吗?
  • 您好 Giorgos Livanos,我使用 csv 数据作为输入而不是使用图像,因为我想在使用 csv 和图像时使用 csv 来比较输出。

标签: python csv tensorflow conv-neural-network


【解决方案1】:

您可以设置一个生成 pandas 的 CSV 读数的示例生成器,然后使用 tf.data.Dataset API 来处理它。使用tf.data.Dataset.from_generator,您可以传递tf.TensorSpec 来描述您的数据,然后添加通道维度以与卷积层兼容。这是提供的图像和输出的最小示例:

import pandas as pd
import tensorflow as tf
import cv2

def example_generator():
    files = ['file1.csv']
    for i in files:
        yield pd.read_csv(i, header=None)

dataset = tf.data.Dataset.from_generator(generator=example_generator, output_signature=tf.TensorSpec(shape=(512, 640), dtype=tf.float32))
dataset = dataset.map(lambda x: tf.expand_dims(x, -1))  # Add channel dimension

for i in dataset.as_numpy_iterator():
    print(i.shape)
    cv2.imshow('', i/i.max())
    cv2.waitKey()


Output: (512, 640, 1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    相关资源
    最近更新 更多