Tensorflow-Feature Column遇到的坑

在使用特征交叉函数

tf.contrib.layers.crossed_column([user_age, item_age], hash_bucket_size=100),

训练时出错:

InvalidArgumentError (see above for traceback): Dense inputs should be a matrix but received shape [1000] at position 0
[[Node: wide_and_deep_model/wide_model/weighted_sum_from_feature_columns/cross = SparseFeatureCross[N=0, dense_types=[DT_STRING, DT_STRING], hashed_output=true, internal_type=DT_STRING, num_buckets=100, out_type=DT_INT64, sparse_types=[], _device="/job:localhost/replica:0/task:0/cpu:0"](strided_slice_9, strided_slice)]]

分析:

数据维度不匹配,输入特征需要一个2D的tensor,提供的是1D的tensor,在不交叉时可能隐藏了这个问题,交叉时报错。

解决:扩展一个维度

examples_dict = {}
for n, header in enumerate(COLUMNS):
    examples_dict[header] = example_batch[:, n]

改为

examples_dict = {}
for n, header in enumerate(COLUMNS):
    examples_dict[header] = tf.expand_dims(example_batch[:, n], 1)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值