我正在尝试使Wide & Deep教程正常工作,但是在从github和网站复制和粘贴代码时,以下行仍然给我一些问题。
df_train["income_bracket"].apply(lambda x: ">50K" in x)).astype(int)
我收到以下错误
TypeError:类型' float'的参数是不可迭代的
我对lamda函数并不太熟悉,但我认为它正在制作一个虚拟变量,所以我尝试使用
for i in range(len(df_train)):
if df_train.loc[i,'income_bracket']=='>50k':
df_train.loc[i,LABEL_COLUMN] =1
else:
df_train.loc[i,LABEL_COLUMN] =0
但得到了错误
TypeError:预期的二进制或unicode字符串,得到nan
如何让本教程有效?
答案 0 :(得分:2)
lambda函数非常有用且简单。它不会创建虚拟变量。 我注意到您将原始数据导入CSV文件。尽量不要这样做,只使用教程代码中显示的原始下载数据。我已成功尝试过这种方式。 但是当我更改为其他数据集进行培训时,我也遇到了同样的问题。所以我仍然希望有人能够更深入地解决这个问题
答案 1 :(得分:0)
这是数据的问题,或TensorFlow的代码。我们已在https://github.com/tensorflow/tensorflow/issues/4293
中提交了有关该问题的问题您可以手动下载文件并删除损坏的行。然后使用此命令运行。
python ./wide_n_deep_tutorial.py --train_data /home/data/train_data --test_data /home/data/test_data