TensorFlow的估算器(estimator)相关使用错误集

*********在此文中我将把自己在tensorflow中使用estimator的错误记录下来,为我以后遇到相同问题做参考,此篇文章将长期更新(要是有啥问题的话,欢迎指出,要是有人也能将自己遇到的问题以及解决方法留下就更好了^ _ ^)*********

1.使用特征列中的embedding_column时需要事先定义分类特征

feature_column中embedding_column需要一个分类特征作为参数,其中分类特征列(category_column)的定义有四种方式。

2.出现特征不在特征字典(feature is not in feature dictionary)的错误。

出现该错误时,很大可能是传入数据并未正确解析,缺少了特征内容。

3.在使用tf.decode_csv函数进行解析时,default_columns要与实际数据的列数长度一致
4.出现如Feild 8 in record 0 is not valid int64:88881216345的错误

该错误的意思为 第0个记录的第8个字段(也就是特征)内容(88881216345)不是一个合法的int64。根据我的情况来说,这个错误是发生在tf.decode_csv中的。原因为decode_csv解析的实际数据类型与传入的default_columns不完全匹配。如下例:

#default_columns中的[0]均为int32类型
default_columns = [[0], [0], [0]]

#假设line中实际数据为8887,2222,999220
#其中8887, 2222均为int32类型, 999220为int64类型
parse_line = tf.decode_csv(line, default_columns=default_columns)

如果按上例直接运行最后便会产生999220不是合法int32类型的数据的错误。可将上例改为如下:

default_columns = [[0], [0], [tf.int64(0)]]

parse_line = tf.decode_csv(line, default_columns=default_columns)

值得注意的是int32,int64数据类型必须区分,但是对于float32与float64却不需要注意这个。

你可能感兴趣的:(TensorFlow的估算器(estimator)相关使用错误集)