保存和打开张量流数据集
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"
请注意,我必须转义字符 +
和 $
,因为它们是特殊的正则表达式字符。
【讨论】:
以上是关于保存和打开张量流数据集的主要内容,如果未能解决你的问题,请参考以下文章