【问题标题】:Tensorflow Create Dataset from csv and mappingTensorflow 从 csv 和映射创建数据集
【发布时间】:2018-10-01 04:12:45
【问题描述】:

我尝试从我用 pandas 创建的 CSV 文件为 Tensorflow 创建一个数据集。

csv 文件如下所示:

feature1     feature2     filepath     label
    0.25         0.35    test1.jpg         A
    0.33         0.15    test2.jpg         B

我是这样读取数据框的

mydf = pd.read_csv("TraingDatafinal.csv",header=0)

现在我已经定义了一个应该返回数据框的函数。这都是根据the quickstart guide

def train_input_fn(features, labels, batch_size):
    """An input function for training"""
    # Convert the inputs to a Dataset.
    dataset = tf.data.Dataset.from_tensor_slices((dict(features), labels))

    # Shuffle, repeat, and batch the examples.
    dataset = dataset.shuffle(1000).repeat().batch(batch_size)
    dataset = dataset.map(mappingfunction)
    # Return the dataset
    return dataset

我这样称呼这个函数;

mydataset = train_input_fn(mydf.drop(["label"],axis=1),mydf["label"],200)

如果我删除映射但打印形状时出现问号,这可行。为什么?尺寸似乎已明确定义。

这是真正的斗争开始的地方。我想创建一个映射函数,用图像数组替换文件路径。

我试图通过编写这个映射函数来实现这一点

def mappingfunction(feature,label):
    print(feature['Filename'])
    image = tf.read_file(feature['Filename'])
    image = tf.image.decode_image(image)
    return image,label

这只会返回图像和标签。我不知道如何实现它以返回除文件路径之外的所有功能。

但即使是这种简化的版本也行不通。我收到“预期的二进制或 Unicode 字符串”错误。你能帮帮我吗?

【问题讨论】:

    标签: python dictionary tensorflow dataset


    【解决方案1】:

    映射函数应返回所有特征和标签。例如:

    def mappingfunction(feature,label):
        print(feature['Filename'])
        image = tf.read_file(feature['Filename'])
        image = tf.image.decode_image(image)
        features['image'] = image
        return features, label
    

    这将在特征字典中添加一个image 键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      相关资源
      最近更新 更多