小编O. *_*nko的帖子

numeric_column shape = 2和两个数字列之间的差异

时间相关数据我最初的格式为整数:

1234 # corresponds to 12:34
2359 # corresponds to 23:59
Run Code Online (Sandbox Code Playgroud)

1)第一个选项是将时间描述为numeric_column:

tf.feature_column.numeric_column(key="start_time", dtype=tf.int32)
Run Code Online (Sandbox Code Playgroud)

2)另一种选择是将时间分成几小时和几分钟分成两个独立的特征列:

tf.feature_column.numeric_column(key="start_time_hours", dtype=tf.int32)
tf.feature_column.numeric_column(key="start_time_minutes", dtype=tf.int32)
Run Code Online (Sandbox Code Playgroud)

3)第三个选项是维护一个特征列,但让tensorflow知道它可以在分成小时和分钟时进行描述:

tf.feature_column.numeric_column(key="start_time", shape=2, dtype=tf.int32)
Run Code Online (Sandbox Code Playgroud)

这种分裂是否有意义,选项2)和3)之间有什么区别?

另外一个问题,我遇到了如何从csv解码矢量数据的问题:

1|1|FGTR|1|1|14,2|15,1|329|3|10|2013
1|1|LKJG|1|1|7,2|19,2|479|7|10|2013
1|1|LKJH|1|1|14,2|22,2|500|3|10|2013
Run Code Online (Sandbox Code Playgroud)

如何让tensorflow知道"14,2","15,1"应该被视为张量形状= 2?

编辑1:

我找到了解码来解码来自csv的"数组"数据的解决方案.在训练和评估函数中,我添加.map了一些步骤来解码某些列的数据:

dataset = tf.data.Dataset.from_tensor_slices((dict(features), labels)).map(parse_csv)
Run Code Online (Sandbox Code Playgroud)

parse_csv实现为:

def parse_csv(features, label):
    features['start_time'] = tf.string_to_number(tf.string_split([features['start_time']], delimiter=',').values, tf.int32)
    return features, label
Run Code Online (Sandbox Code Playgroud)

我认为两个分离的列和一个列之间的区别在于shape=2"权重"的分布方式.

tensorflow feature-engineering tensorflow-estimator

5
推荐指数
0
解决办法
342
查看次数