Python 如何获取tf.data.Dataset的特征和张量字典?
给定以下数据集:Python 如何获取tf.data.Dataset的特征和张量字典?,python,tensorflow,tensorflow-datasets,Python,Tensorflow,Tensorflow Datasets,给定以下数据集: import pandas as pd import tensorflow as tf df = pd.DataFrame({ 'feat_binomial': [5, 1, 7, 4, 6], 'feat_normal': [5.001512, 5.346654, -0.480363,4.821558,-2.080958], 'feat_ordinal': ['low', 'low', 'low','low','low'], 'feat_st
import pandas as pd
import tensorflow as tf
df = pd.DataFrame({
'feat_binomial': [5, 1, 7, 4, 6],
'feat_normal': [5.001512, 5.346654, -0.480363,4.821558,-2.080958],
'feat_ordinal': ['low', 'low', 'low','low','low'],
'feat_string': ['a', 'b', 'b','b','b'],
})
dataset = tf.data.Dataset.from_tensor_slices(dict(df))
我想得到特征和张量的字典,在将map
函数应用于数据集时,其中一个会有它。在这里可以看到打印的内容:
def print_input_dict(input_dict):
features_tensors = dict(input_dict)
print(features_tensors)
return features_tensors
dataset.map(print_input_dict)
所以它被存储在一个全局变量中,我以后可以访问它,但这并不是正确的方法。这本词典还有别的办法吗
谢谢您可以尝试使用迭代器
iterator=dataset.make_one_shot_iterator()
feature_dict=iterator.get_next()#返回特征字典
您可以尝试使用迭代器
iterator=dataset.make_one_shot_iterator()
feature_dict=iterator.get_next()#返回特征字典
{'feat_binomial': <tf.Tensor 'args_0:0' shape=() dtype=int32>,
'feat_normal': <tf.Tensor 'args_1:0' shape=() dtype=float64>,
'feat_ordinal': <tf.Tensor 'args_2:0' shape=() dtype=string>,
'feat_string': <tf.Tensor 'args_3:0' shape=() dtype=string>}
def _extract_labels(input_dict):
global features_tensors
features_tensors = dict(input_dict)
return features_tensors
dataset.map(print_input_dict)