从零基础入门Tensorflow2.0 ----五、19. feature_column , keras_to_estimator
every blog every motto:
0. 前言
读取,tfrecords文件,并使用tf.keras
1. 代码部分
1. 导入模块
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
import tensorflow as tf
from tensorflow import kerasprint(tf.__version__)
print(sys.version_info)
for module in mpl,np,pd,sklearn,tf,keras:print(module.__name__,module.__version__)
2. 读取数据
# 读取数据
train_file = './data/train.csv'
eval_file = './data/eval.csv'train_df = pd.read_csv(train_file)
eval_df = pd.read_csv(eval_file)print(train_df.head())
print(eval_df.head())
y_train = train_df.pop('survived')
y_eval = eval_df.pop('survived')print(train_df.head())
print(eval_df.head())
print(y_train.head())
print(y_eval.head())
3. 查看统计量
# 查看统计量
train_df.describe()
print(train_df.shape,eval_df.shape)
3.2 查看分布
# 查看年龄分布,直方图
train_df.age.hist(bins=20)
# 查看性别分布
train_df.sex.value_counts().plot(kind = 'barh')
# 查看类别分布
train_df['class'].value_counts().plot(kind = 'barh')
pd.concat([train_df,y_train],axis=1).groupby('sex').survived.mean().plot(kind='barh')
4. feature_columns
# 离散特征
categorical_colums = ['sex','n_siblings_spouses','parch','class','deck','embark_town','alone']
numerical_columns = ['age','fare']feature_columns = []
# 离散
for categorical_column in categorical_colums:vocab = train_df[categorical_column].unique() # 获取所有可能的值print(categorical_column,vocab)# one-hot 编码,feature_columns.append(tf.feature_column.indicator_column(tf.feature_column.categorical_column_with_vocabulary_list(categorical_column,vocab)))# 连续
for categorical_column in numerical_columns:feature_columns.append(tf.feature_column.numeric_column(categorical_column,dtype=tf.float32))
5. 构建dataset
# 构建dataset
def make_dataset(data_df,label_df,epochs=10,shuffle=True,batch_size = 32):dataset = tf.data.Dataset.from_tensor_slices((dict(data_df),label_df))if shuffle:dataset = dataset.shuffle(10000)dataset = dataset.repeat(epochs).batch(batch_size)return dataset
train_dataset = make_dataset(train_df,y_train,batch_size = 5)
for x,y in train_dataset.take(1):print(x,y)
6. feaure_column与dataset结合使用
# feature_column 与dataset 结合使用
# keras.layers.DenFeature
for x,y in train_dataset.take(1):age_column = feature_columns[7]gender_column = feature_columns[0]print(keras.layers.DenseFeatures(age_column)(x).numpy())print(keras.layers.DenseFeatures(gender_column)(x).numpy())
# feature_column 与dataset 结合使用
# keras.layers.DenFeature
for x,y in train_dataset.take(1):print(keras.layers.DenseFeatures(feature_columns)(x).numpy())
7. 构建模型
# 构建keras模型
model = keras.models.Sequential([keras.layers.DenseFeatures(feature_columns),keras.layers.Dense(100,activation='relu'),keras.layers.Dense(100,activation='relu'),keras.layers.Dense(2,activation='softmax'),
])model.compile(loss="sparse_categorical_crossentropy",optimizer = keras.optimizers.SGD(lr=0.01),metrics=['accuracy'])
8. 训练
# 1. model.fit
# 2. model -> estimator -> triantrain_dataset = make_dataset(train_df,y_train,epochs=100)
eval_dataset = make_dataset(eval_df,y_eval,epochs=1,shuffle=False)
history = model.fit(train_dataset,validation_data = eval_dataset,steps_per_epoch=20,validation_steps=8,epochs=100)
estimator = keras.estimator.model_to_estimator(model)
# 1. function
# 2. return a. (features,labels) b. dataset -> (feature,label)
estimator.trian(input_fn = lambda:make_dataset(train_df,y_train,epochs))
注: 框架有buge,
从零基础入门Tensorflow2.0 ----五、19. feature_column , keras_to_estimator相关推荐
- 视频编码零基础入门(0):零基础,史上最通俗视频编码技术入门
[来源申明]本文引用了微信公众号"鲜枣课堂"的<视频编码零基础入门>文章内容.为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作 ...
- 一篇文章让你从JAVA零基础入门`OOP`编程12.19
一篇文章让你从JAVA零基础入门OOP编程 前言: 此文为玄子,复习ACCP-S1课程后,整理的文章,文中对知识点的解释仅为个人理解. 配套PPT,站点源码,等学习资料 一.预科 1.1 JAVA 介 ...
- python零基础入门教程会计-Python 19会计(Z)
spContent=本课基于主讲教师在北京大学讲授数据结构与算法课(Python版)的多年教学实践经验,面向零编程基础的大学生和社会公众,全面讲授Python语言基础,培养学生计算思维的能力,并讲解P ...
- 零基础入门学习Python(19)-内嵌函数和闭包
global关键字 全局变量的作用域是整个模块,也就是代码段内所有的函数内部都可以访问到全局变量 注意,在函数内部仅仅去访问全局变量就好,不要试图去修改它,如果随意修改全局变量的值,很容易牵一发而动全 ...
- Apache Flink 零基础入门(十五)Flink DataStream编程(如何自定义DataSource)
数据源可以通过StreamExecutionEnvironment.addSource(sourceFunction)方式来创建,Flink也提供了一些内置的数据源方便使用,例如readTextFil ...
- 零基础入门学习Python(19)--函数:我的地盘听我的
知识点 函数与过程 在许多编程语言中,函数(function)是有返回值的,过程(procedure)是简单.特殊并且没有返回值的.而在Python中,严格来说只有函数没有过程. 例如: >&g ...
- 【转】Dynamics CRM 365零基础入门学习(五)权限管理
一:安全角色 Microsoft Dynamics 365中的安全角色是各种实体的特权和访问级别矩阵. 它们根据其功能分组在不同的选项卡下. 这些组包括:核心记录,营销,销售,服务,业务管理,服务管理 ...
- python和循环语句_Python 小白零基础入门 -- 条件语句和循环语句
Python 小白零基础入门 -- 条件语句和循环语句 点击上方 "Python 读数", 选择 "星标" 公众号 重磅干货, 第一时间送达 Python 零基 ...
- 五万字15张导图Java自学路线,小白零基础入门,程序员进阶,收藏这篇就够了
本文收录于<技术专家修炼> 文中配套资料合集 路线导图高清源文件 点击跳转到文末点击底部卡片回复「资料」领取 哈喽,大家好,我是一条~ 最近粉丝问我有没有Java自学路线,有了方向才能按图 ...
- 视频教程-19全新mysql教程零基础入门实战精讲mysql视频DBA数据库视频教程SQL教程-MySQL
19全新mysql教程零基础入门实战精讲mysql视频DBA数据库视频教程SQL教程 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/ja ...
最新文章
- 线扫相机——机器视觉中无限制物体的检测
- js之字面量、对象字面量的访问、关键字in的用法
- 有了 for (;;) 为什么还需要 while (true) ? 到底哪个更快?
- [C++调试笔记]网格划分grid_pic.cpp
- [非旋平衡树]fhq_treap概念及模板,例题:普通平衡树,文艺线段树
- java mail outlook_已启用Outlook API邮件与邮箱用户
- Error installing bundler:bundler requires Ruby version >= 2.3.0.
- 学习推荐《精通Python网络爬虫:核心技术、框架与项目实战》中文PDF+源代码
- linux中hadoop环境变量配置文件,Ubuntu中关于hadoop环境变量的设置方法
- linux 怎么改系统字体,Linux下如何设置中文字体
- 001.XE3添加TPerlRegEx
- 极客大学产品经理训练营:需求评审 第13课总结
- 7-2统计素数并求和(20分)
- m115b linux 驱动下载,富士施乐m115b打印机驱动
- TeamViewer 被发现用于(检测为)商业用途解决方案(亲测有效 )
- 11.1.4 子线程与主线程通信实例
- jQuery UI Autocomplete是jQuery UI的自动完成组件
- 自签名SSL证书有风险吗?
- w ndows10QQ远程,Win10提示“QQ远程系统权限原因,暂时无法操作”的解决方法
- 阿里云数据库MongoDB版助力吉比特《一念逍遥》游戏斩获千万玩家,运营效率成倍增长
热门文章
- windows 64位sed.exe_32位,64位,x86,x64到底是什么关系?差距居然这么大
- qt 隐藏控制台_QT去掉CONSOLE | 学步园
- 用户已关闭隐式函数计算_针对隐式反馈和LightFM模型的杂谈
- python设置tk退出_Tkinter退出按钮
- python不用sort排序_Python排序方法sort、sorted的key参数的作用
- JS:获取字符串中第一个不是汉字的字符
- Java编程:树(基础部分)
- 设计模式:JavaScript
- pos mac java_有没有谁搞过银联POS终端mac算法[php版本]?
- 记录下我的Linux系统中vim文件的配置---(.vimrc文件配置模板)