保存和打开张量流数据集

Posted

技术标签:

【中文标题】保存和打开张量流数据集【英文标题】:Saving and opening a tensorflow dataset 【发布时间】:2021-12-27 19:47:15 【问题描述】:

我创建并保存了一个如下所示的数据集:

# line 1
foo+++$+++faa+++$+++fee
# +++$+++ is the separator

我已经像.txt 一样保存了,然后用

保存到tf
from tensorflow.data import TextLineDataset
from tensorflow.data.experimental import save, load
tfsaved = TextLineDataset('path_to_file.txt')
save(tfsaved, 'path_tf_dataset')

但是,当我加载数据集时,它看起来像这样:

# Line 1
foofaafee

我能否以任何方式向tf 表明+++$+++ 是我的分隔符?如果没有,我该如何解决?

【问题讨论】:

您对这个数据集的具体目标是什么?或者你只是在尝试TextLineDataset @AloneTogether 我的目标是在一个数据集中拥有 3 个特征。我使用了textLineDataset,因为这是我知道的唯一方法,也许还有其他更好的方法! 您是自己创建数据集吗?如果你是,你可以只使用一个数据框并使用你想要的任何分隔符.. @AloneTogether 但我怎么能传递给tf.Dataset 【参考方案1】:

这是一个简单的示例,说明如何使用 pandas 读取数据并将其传递给 tf.data.Dataset.from_tensor_slices

数据.csv

feature1+++$+++feature2+++$+++feature3
foo+++$+++faa+++$+++fee
foo+++$+++faa+++$+++fee
foo+++$+++faa+++$+++fee
foo+++$+++faa+++$+++fee
foo+++$+++faa+++$+++fee
foo+++$+++faa+++$+++fee
foo+++$+++faa+++$+++fee
import pandas as pd 
import tensorflow as tf

df =  pd.read_csv('data.csv', sep='\+\+\+\$\+\+\+', engine='python')
ds = tf.data.Dataset.from_tensor_slices((dict(df)))

for d in ds.take(3):
  tf.print(d)
'feature1': "foo", 'feature2': "faa", 'feature3': "fee"
'feature1': "foo", 'feature2': "faa", 'feature3': "fee"
'feature1': "foo", 'feature2': "faa", 'feature3': "fee"

请注意,我必须转义字符 +$,因为它们是特殊的正则表达式字符。

【讨论】:

以上是关于保存和打开张量流数据集的主要内容,如果未能解决你的问题,请参考以下文章

如何在每个时期评估测试数据集的张量流估计器

如何从带有向量列的 DataFrame 创建张量流数据集?

计算张量流损失时的几何平均值

如何在 MATLAB 中创建和保存大型数据集?

张量流 LSTM 模型中的 NaN 损失

将自定义数据加载到张量流管道中