你进入了tensorflow crashcourse的另一个障碍......在这个页面的表现编程练习中。
https://developers.google.com/ ... / repres ... /编程锻炼
我在任务2:更好地利用谷歌纵横
似乎我将问题范围缩小到将原始纬度数据转换为“桶”或在我的特征中将表示为1或0的范围。我的实际代码和问题是在粘贴箱中。任何建议都会很棒!谢谢!
这是将我的pandas词典中的原始纬度数据转换为谷歌调用的“桶”或范围。
LATITUDE_RANGES = zip(xrange(32, 44), xrange(33, 45))
上面的代码我改变了并且只用范围替换了xrange,因为xrange已经被弃用了python3。 这可能是问题吗?使用范围而不是xrange?见下面我的难题。
def select_and_transform_features(source_df):
selected_examples = pd.DataFrame()
selected_examples["median_income"] = source_df["median_income"]
for r in LATITUDE_RANGES:
selected_examples["latitude_%d_to_%d" % r] = source_df["latitude"].apply(
lambda l: 1.0 if l >= r[0] and l < r[1] else 0.0)
return selected_examples
接下来的两个是运行上面的函数,转换可能会将训练和验证数据集退出到纬度范围或桶中
selected_training_examples = select_and_transform_features(training_examples)
selected_validation_examples = select_and_transform_features(validation_examples)
这是培训模式
_ = train_model(
learning_rate=0.01,
steps=500,
batch_size=5,
training_examples=selected_training_examples,
training_targets=training_targets,
validation_examples=selected_validation_examples,
validation_targets=validation_targets)
问题:
oki所以这就是我如何理解这个问题。当我运行训练模型时,它会抛出此错误
ValueError: Feature latitude_32_to_33 is not in features dictionary.
所以我调用了selected_training_examples和selected_validation_examples 这是我发现的。如果我跑
selected_training_examples = select_and_transform_features(training_examples)
然后当我调用selected_training_examples时,我得到了正确的数据集,这会产生所有功能“桶”,包括Feature#latitude_32_to_33 但是当我运行下一个功能时
selected_validation_examples = select_and_transform_features(validation_examples)
它不会产生任何桶或范围,导致
`ValueError: Feature latitude_32_to_33 is not in features dictionary.`
所以我接下来尝试禁用第一个功能
selected_training_examples = select_and_transform_features(training_examples)
我刚刚运行了第二个功能
selected_validation_examples = select_and_transform_features(validation_examples)
如果我这样做,那么我会获得所需的数据集 selected_validation_examples。
问题现在是运行第一个功能不再给我“桶”,我回到我开始的地方?我想我的问题是两个功能如何相互影响?并阻止对方给我我需要的数据集?如果我一起运行它们? 提前谢谢!
答案 0 :(得分:2)
一位python开发人员给了我解决方案,所以只是想分享。 LATITUDE_RANGES = zip(xrange(32,44),xrange(33,45))只能按照它的编写方式使用,所以我把它放在成功的def select_and_transform_features(source_df)函数中,这解决了问题。再次感谢大家。