亲宝软件园·资讯

展开

tensorflow feature_column踩坑合集

风雨中的小七 人气:0
踩坑内容包含以下 1. feature_column的输入输出类型,用一个数据集给出demo 2. feature_column接estimator 3. feature_column接Keras ## feature_column 输入输出类型 ### 输入输出类型 feature_column输入可以是原始特征的列名,或者是feature_column。初上手感觉feature_column设计的有点奇怪,不过熟悉了逻辑后用起来还是很方便的。几个需要习惯一下的点: 1. 深度模型的输入必须是Dense类型,所有输出是categorical类型需要经过indicator或者embedding的转换才可以 2. indicator, embedding, bucketized的输入不能是原始特征,前两者只能是categorical类型的feature_column, 后者只能是numeric_column |feature_column| 输入| 输出|输出是否为dense| |----|----|----|---| |categorical_column_with_identity|数值型离散|categorical|N| |categorical_column_with_vocabulary_list|字符型/数值型离散|categorical|N| |categorical_column_with_hash_bucket|类别太多的离散值|categorical|N| |crossed_column|categorical/离散值 |categorical|N| |indicator_column|categorical|one/multi-hot|Y| |embedding_column |categorical|dense vector|Y| |numeric_column|数值型连续值|numeric|Y| |bucketzied_column|numeric_column|one-hot|Y| 以下给出各种特征工程的demo,原始特征如下 ![image.png-252.2kB][1] ### 输入-连续值 ![image.png-170.8kB][2] ### 输入-离散值 ![image.png-286.2kB][3] ### 输入-categorical ![image.png-290kB][4] ## feature_column接estimator 如果是使用预定义的estimator, feature_column可以直接作为输入,不需要任何额外操作,只需要注意深度模型只支持Dense类型的feature_column即可。 如果是自定义estimator,则需要多一步用feature_column先创建input_layer ```python input_layer = tf.feature_column.input_layer(features, feature_columns) ``` ## feature_column接keras 为什么要这么搭配呢,好像是没啥必要,只不过进一步证明tf的官方文档确实坑而已。。。 ```python def model_fn(): #define Keras input input = {} for f in FEATURE_NAME: input[f] = Input(shape=(1,), name = f, dtype = DTYPE[f]) #generate feature_columns feature_columns = build_features() #Define transformation from feature_columns to Dense Tensor feature_layer = tf.keras.layers.DenseFeatures( feature_columns ) #Transform input dense_feature = feature_layer(input) output = Dense(1, activation='sigmoid')(dense_feature) #feed input placeholder as list model = Model(inputs = [i for i in input.values()], outputs = output) return model ``` [1]: http://static.zybuluo.com/hongchenzimo/iyjk0m2i1i631jv9gwj8jzgg/image.png [2]: http://static.zybuluo.com/hongchenzimo/y3ihfhb465aci4n0qs9kvqag/image.png [3]: http://static.zybuluo.com/hongchenzimo/qyfvqwib5turc587l3hml196/image.png [4]: http://static.zybuluo.com/hongchenzimo/6kjyawpwbsdrqjcak96hw3fk/image.png

加载全部内容

相关教程
猜你喜欢
用户评论