Tensorflow 1.x 的 feature_columns 项必须是 _FeatureColumn。给定类型是列表

Posted

技术标签:

【中文标题】Tensorflow 1.x 的 feature_columns 项必须是 _FeatureColumn。给定类型是列表【英文标题】:Tensorflow 1.x Items of feature_columns must be a _FeatureColumn. Given type is List 【发布时间】:2019-11-03 06:58:01 【问题描述】:

我正在使用 TensorFlow 1.15 进行机器学习项目,在该项目中我使用 tf.feature_column 创建特征列,但遇到了一个错误。

我是这样定义feature columns的:

# Define feature columns

is_male = tf.feature_column.categorical_column_with_vocabulary_list('is_male', vocabulary_list=['False', 'True'])
plurality = tf.feature_column.categorical_column_with_vocabulary_list('plurality', vocabulary_list=['Single(1)', 'Twins(2)', 'Triplets(3)', 'Quadruplets(4)', 'Quintuplets(5)'])
wide_columns = [is_male, plurality]
mother_age = tf.feature_column.numeric_column(key="mother_age", shape=10)
gestation_weeks = tf.feature_column.numeric_column(key="gestation_weeks", shape=10)
deep_columns = [mother_age,gestation_weeks]
feature_cols = [wide_columns, deep_columns]

这是我得到的确切错误:

ValueError:feature_columns 的项目必须是 _FeatureColumn。给定(类型):[VocabularyListCategoricalColumn(key='is_male', words_list=('False', 'True'), dtype=tf.string, default_value=-1, num_oov_buckets=0), VocabularyListCategoricalColumn(key='plurality',词汇表=('Single(1)', 'Twins(2)', 'Triplets(3)', 'Quadruplets(4)', 'Quintuplets(5)'), dtype=tf.string, default_value=-1, num_oov_buckets=0)]。

【问题讨论】:

【参考方案1】:

我认为feature_cols 包含两个列表,因此您传递了feature_cols = [[is_male, plurality], [mother_age, gestation_weeks]]。我相信你想做的是feature_cols = wide_columns + deep_columns

【讨论】:

以上是关于Tensorflow 1.x 的 feature_columns 项必须是 _FeatureColumn。给定类型是列表的主要内容,如果未能解决你的问题,请参考以下文章

使用 Tensorflow 嵌入列会引发 All feature_columns must be _FeatureColumn instances 错误

『TensorFlow』队列&多线程&TFRecod文件_我辈当高歌

吴裕雄 python 神经网络——TensorFlow 输入文件队列

吴裕雄 python 神经网络——TensorFlow TFRecord样例程序

tensorflow feature column

如何从 TensorFlow 1.x 迁移到 TensorFlow 2.x