【发布时间】: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