TensorFlow的高阶接口Estimator的使用(1)

本文摘自人民邮电出版社异步社区

http://www.epubit.com.cn/article/1502        


日话题讨论,赠送异步新

在《TensorFlow机器学习项目实战》的4.4节,作者使用了skflow。skflow刚出来的时候火了一阵,但是接口变化非常频繁,所以后来用的人也越来越少,也导致4.4的程序不能运行了。

但是最近发布的TensorFlow 1.4中,我们发现该模块已经集成到了核心模块,意味着接口基本稳定下来,并有推广使用的趋势。所以我把4.4的程序重新用Estimator写了一下,变量名基本保持不变,代码如下:


# -*- coding: utf-8 -*-    
 import tensorflow as tf from sklearn import datasets, metrics,
  preprocessing import numpy as np import pandas as pd import os df = pd.
  read_csv("data/CHD.csv", header=0) print( df.describe()) X=df['age'].
  astype(float) feature_columns = [tf.contrib.layers.real_valued_column
  ("X", dimension=1)] classifier = tf.estimator.LinearClassifier
  (feature_columns=feature_columns,                                   
  model_dir=os.path.join(".","tmp","logistic")) #classifier =
   tf.estimator.LinearClassifier(feature_columns=feature_columns) 
input_fn_train= tf.estimator.inputs.numpy_input_fn(              
 x={"X" : np.array(X)},           
  y=np.array(df['chd']),            
 batch_size=2,                
 num_epochs=None,              
shuffle=True) classifier.train(input_fn=input_fn_train,steps=2000)
 #模型的准确度 score =  classifier.evaluate(input_fn=input_fn_train,steps=50)
 ["accuracy"] print("Accuracy: %f" % score)


注:这段程序可以在Ubuntu和MacOS下面跑,但是Windows下面还不行,是路径的问题。这应该是Estimator的一个BUG,在contrib.learn下也是一样的不行。如果想在windows下,一定要用注释掉的部分。

这里面最难写的是input_fn函数,也是最重要的函数,我在这段程序中直接使用了numpy_input_fn来构建。[1]中除了这个方法还给出了从pandas构建的方法,大家可以自己尝试。

input_fn带来了一个好处,就是可以按照生产者消费者模式读取数据,具体的解释可以参考[2]。简单的解释,就是IO一般都比较慢,我们需要在数据处理的过程中进行读取数据,那样就可以充分的节省时间,这样就设计多线程在后台不断的取数据。

feature_colums的构建需要一定的技巧,这个主要参考[3]

另外的一个变化就是模型的准确度不再是用metric模块,而是Estimator自带的模块。

如果大家有什么问题欢迎留言

Reference

[1] 为Estimator构建输入函数

[2] 从零开始山寨Caffe·陆:IO系统(一)

[3] tf.estimator Quickstart

本文摘自人民邮电出版社异步社区,点击下方阅读原文查看更多。

延伸推荐

2018年1月重磅新书

小学生开始学Python,最接近AI的编程语言:安利一波Python书单

政策升温:大家都在学大数据,一大波好书推荐

一本基于Python语言的Selenium自动化测试书

8本新书,送出一本你喜欢的

AI经典书单| 入门人工智能该读哪些书?


点击关键词阅读更多新书:

Python|机器学习|Kotlin|Java|移动开发|机器人|有奖活动|Web前端|书单

异步图书”后台回复“关注”,即可免费获得2000门在线视频课程;推荐朋友关注根据提示获取赠书链接,免费得异步图书一本。赶紧来参加哦!

点击阅读原文,查看本书更多信息

扫一扫上方二维码,回复“关注”参与活动!

    
   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值