05:Tensorflow高级API的进阶--利用tf.contrib.learn建立输入函数

这篇博客介绍了如何使用Tensorflow的高级API tf.contrib.learn来构建输入函数input_fn,详细阐述了input_fn的结构、特征数据转成tensors的方法,并通过一个房价预测案例展示了input_fn在模型训练、评估和预测中的应用。
摘要由CSDN通过智能技术生成

标签(空格分隔): 王小草Tensorflow笔记


笔记整理者:王小草
笔记整理时间:2017年2月27日
笔记对应的官方文档:https://www.tensorflow.org/get_started/input_fn#setup
官方文档最近一次更新时间2017年2月15日


在实际的业务中,可能会遇到很大量的特征,这些特征良莠不齐,层次不一,可能有缺失,可能有噪声,可能规模不一致,可能类型不一样,等等问题都需要我们在建模之前,先预处理特征或者叫清洗特征。那么这清洗特征的过程可能涉及多个步骤可能比较复杂,为了代码的简洁,我们可以将所有的预处理过程封装成一个函数,然后直接往模型中传入这个函数就可以啦~~~

接下来我们看看究竟如何做呢?

1. 如何使用input_fn自定义输入管道

当使用tf.contrib.learn来训练一个神经网络时,可以将特征,标签数据直接输入到.fit(),.evaluate(),.predict()操作中。比如在笔记04中就使用到了,复看一下代码:

# 将特征与标签数据载入
training_set = tf.contrib.learn.datasets.base.load_csv_with_header(
    filename=IRIS_TRAINING, target_dtype=np.int, features_dtype=np.float32)

test_set = tf.contrib.learn.datasets.base.load_csv_with_header(
    filename=IRIS_TEST, target_dtype=np.int, features_dtype=np.float32)


# 然后将两个数据喂给.fit()函数去训练
classifier.fit(x=training_set.data,
               y=training_set.target,
               steps=2000)

当原始数据不需要或几乎很少需要一些额外的预处理时,使用以上的方式到也不为过。然而在实际的业务中我们往往需要去做大量的特征工程,于是tf.contrib.learn支持使用一个用户自定义的输入函数input_fn来封装数据预处理的逻辑,并且将数据通过管道输送到模型中。

1.1 解剖input_fn函数的结构

以下是一个input_fn函数的基本结构:

def my_input_fn():

    # Preprocess your data here...(首先预处理你的数据)

    # ...then return 1) a mapping of feature columns to Tensors with
    # the corresponding feature data, and 2) a Tensor containing labels
    # 然后返回新的特征数据与标签数据(都是以tensor的形式)
    return feature_cols, labels

输入函数的主体包括一个特定的预处理输入数据的逻辑,比如去除一些

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值