从零基础入门Tensorflow2.0 ----二、4.3 wide deep 模型(多输入)
every blog every motto: Your happy passer-by all knows, my distressed there is no place hides.
0. 前言
wide & deep 模型 ,多输入问题 (函数式API)
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. 读取数据
from sklearn.datasets import fetch_california_housing# 房价预测
housing = fetch_california_housing()
print(housing.DESCR)
print(housing.data.shape)
print(housing.target.shape)
3. 划分样本
# 划分样本
from sklearn.model_selection import train_test_splitx_train_all,x_test,y_train_all,y_test = train_test_split(housing.data,housing.target,random_state=7)
x_train,x_valid,y_train,y_valid = train_test_split(x_train_all,y_train_all,random_state=11)print(x_train.shape,y_train.shape)
print(x_valid.shape,y_valid.shape)
print(x_test.shape,y_test.shape)
4. 数据归一化
# 归一化
from sklearn.preprocessing import StandardScalerscaler = StandardScaler()
x_train_scaled = scaler.fit_transform(x_train)
x_valid_scaled = scaler.transform(x_valid)
x_test_scaled = scaler.transform(x_test)
5. 多输入
# 多输入(函数式方法)
input_wide = keras.layers.Input(shape=[5])
input_deep = keras.layers.Input(shape=[6])
hidden1 = keras.layers.Dense(30,activation='relu')(input_deep)
hidden2 = keras.layers.Dense(30,activation='relu')(hidden1)
concat = keras.layers.concatenate([input_wide,hidden2])
output = keras.layers.Dense(1)(concat)
model = keras.models.Model(inputs=[input_wide,input_deep],outputs=[output])
6. 编译和回调函数
# 打印model信息
model.summary()
# 编译
model.compile(loss='mean_squared_error',optimizer="adam")
# 回调函数
callbacks = [keras.callbacks.EarlyStopping(patience=5,min_delta=1e-2)]
7. 训练
# 一共8个特征,wide前5个,deep后6个
x_train_scaled_wide = x_train_scaled[:,:5]
x_train_scaled_deep = x_train_scaled[:,2:]
x_valid_scaled_wide = x_valid_scaled[:,:5]
x_valid_scaled_deep = x_valid_scaled[:,2:]
x_test_scaled_wide = x_test_scaled[:,:5]
x_test_scaled_deep = x_test_scaled[:,2:]#训练
history = model.fit([x_train_scaled_wide,x_train_scaled_deep],y_train,validation_data=([x_valid_scaled_wide,x_valid_scaled_deep],y_valid),epochs=100,callbacks=callbacks)
8. 学习曲线
# 学习曲线
def plot_learning_curves(history):pd.DataFrame(history.history).plot(figsize=(8,5))plt.grid(True)plt.gca().set_ylim(0,1)plt.show()
plot_learning_curves(history)
9. 测试集上
model.evaluate([x_test_scaled_wide,x_test_scaled_deep],y_test)
从零基础入门Tensorflow2.0 ----二、4.3 wide deep 模型(多输入)相关推荐
- TensorFlow2.0(五)--Keras构建Wide Deep模型
Keras构建Wide & Deep模型 1. Wide & Deep模型简介 2. Keras实现Wide & Deep模型 2.1 导入相应的库 2.2 数据集加载与处理 ...
- 视频编码零基础入门(0):零基础,史上最通俗视频编码技术入门
[来源申明]本文引用了微信公众号"鲜枣课堂"的<视频编码零基础入门>文章内容.为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作 ...
- 【天池赛事】零基础入门语义分割-地表建筑物识别 Task5:模型训练与验证
[天池赛事]零基础入门语义分割-地表建筑物识别 Task1:赛题理解与 baseline(3 天) – 学习主题:理解赛题内容解题流程 – 学习内容:赛题理解.数据读取.比赛 baseline 构建 ...
- python环境变量配置_Python零基础入门到年薪二十万-1.1节: 在windows中安装Python
教程引言: 该系列图文课程以及视频课程全部免费.课程会系统地讲解计算机的基础知识,Python的基础知识. 在讲解Python的高级知识中,会系统地讲解面向对象编程,并发编程,数据库编程,网络编程. ...
- 零基础入门--中文命名实体识别(BiLSTM+CRF模型,含代码)
https://github.com/mali19064/LSTM-CRF-pytorch-faster 中文分词 说到命名实体抽取,先要了解一下基于字标注的中文分词. 比如一句话 "我爱北 ...
- 【转】Dynamics CRM 365零基础入门学习(二)Dynamics 插件注册的基本流程
插件的官方定义是:插件是可与 Microsoft Dynamics CRM 365 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标 ...
- Flutter零基础入门配套代码二
Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台.高保真.高性能.开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台. Flutt ...
- Apache Flink 零基础入门(十二)Flink sink
将DataSet中的数据Sink到哪里去.使用的是对应的OutPutFormat,也可以使用自定义的sink,有可能写到hbase中,hdfs中. writeAsText() / TextOutput ...
- TensorFlow2.0(二)--Keras构建神经网络分类模型
Keras构建分类模型 1. tf.keras简介 2. 利用tf.keras构建神经网络分类模型 2.1 导入相应的库 2.2 数据读取与展示 2.3 数据归一化 2.4 构建模型 2.5 模型的编 ...
- SQL零基础入门学习(三)
SQL零基础入门学习(二) SQL WHERE 子句 WHERE 子句用于提取那些满足指定条件的记录. SQL WHERE 语法 SELECT column1, column2, ... FROM t ...
最新文章
- Python将彩色图转换为灰度图
- 城市大脑不仅是AI系统,更是结合人类智慧的混合智能巨系统
- STM32 进阶教程 6 - 汇编与C混合编程
- 算法竞赛入门经典 写题笔记(第五章 图论算法与模型2)
- java2实用教程第5版第九章_java2实用教程(例子代码)第4版第九章.doc
- 中原大学 php,中原大学php全集视频教程
- Linux进程和计划任务管理(详细图例)
- 天牛须matlab,基于天牛须搜索算法(BAS)优化BP神经网络的权值阈值代码
- Scala入门到精通——第二十三节 高级类型 (二)
- 前端全栈大佬是如何使用javaScript实现一个无缝轮播
- Hackerlands:城市Hackerspaces的农村版本
- 电力装置的继电保护和自动装置设计规范_继电保护装置升级到微机保护装置
- 新兴IT企业特斯拉(九)——私有化风波
- 电路交换、报文交换和分组交换的区别
- python的cubes怎么使用_Python measure.marching_cubes方法代碼示例
- Java中按字母顺序对字符串字符进行排序的4种不同方法
- Centos7 合理分配 swap空间
- 欺骗的艺术——第二部分(8)
- 《C#零基础入门之百识百例》(二十一)数组遍历 -- 删除数组零元素
- Android 蓝牙开发——蓝牙连接(六)
热门文章
- osql 登陆mysql_命令行登录mysql报Segmentation fault故障解决
- python findall_Python 正则表达式:findall
- pandas之Series()菜鸟教程
- python 几何计算_计算几何-凸包算法 Python实现与Matlab动画演示
- springboot整合JDBC+Druid
- 3dmax材质通道插件_3dmax插件外挂神器【疯狂模渲大师蓝色经典版】第九章:渲染后期教程...
- pygame检测精灵与精灵的碰撞_Pygame(三)--走出黑暗的洞穴(2)
- java被oracle收购,sun被oracle收购了,openoffice和virtualbox会不会死?
- 服务器mysql_本地如何操作服务器的mysql,详细教程
- 实战HTML:动画背景网站登录界面