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 模型(多输入)相关推荐

  1. TensorFlow2.0(五)--Keras构建Wide Deep模型

    Keras构建Wide & Deep模型 1. Wide & Deep模型简介 2. Keras实现Wide & Deep模型 2.1 导入相应的库 2.2 数据集加载与处理 ...

  2. 视频编码零基础入门(0):零基础,史上最通俗视频编码技术入门

    [来源申明]本文引用了微信公众号"鲜枣课堂"的<视频编码零基础入门>文章内容.为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作 ...

  3. 【天池赛事】零基础入门语义分割-地表建筑物识别 Task5:模型训练与验证

    [天池赛事]零基础入门语义分割-地表建筑物识别 Task1:赛题理解与 baseline(3 天) – 学习主题:理解赛题内容解题流程 – 学习内容:赛题理解.数据读取.比赛 baseline 构建 ...

  4. python环境变量配置_Python零基础入门到年薪二十万-1.1节: 在windows中安装Python

    教程引言: 该系列图文课程以及视频课程全部免费.课程会系统地讲解计算机的基础知识,Python的基础知识. 在讲解Python的高级知识中,会系统地讲解面向对象编程,并发编程,数据库编程,网络编程. ...

  5. 零基础入门--中文命名实体识别(BiLSTM+CRF模型,含代码)

    https://github.com/mali19064/LSTM-CRF-pytorch-faster 中文分词 说到命名实体抽取,先要了解一下基于字标注的中文分词. 比如一句话 "我爱北 ...

  6. 【转】Dynamics CRM 365零基础入门学习(二)Dynamics 插件注册的基本流程

    插件的官方定义是:插件是可与 Microsoft Dynamics CRM 365 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标 ...

  7. Flutter零基础入门配套代码二

    Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台.高保真.高性能.开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台. Flutt ...

  8. Apache Flink 零基础入门(十二)Flink sink

    将DataSet中的数据Sink到哪里去.使用的是对应的OutPutFormat,也可以使用自定义的sink,有可能写到hbase中,hdfs中. writeAsText() / TextOutput ...

  9. TensorFlow2.0(二)--Keras构建神经网络分类模型

    Keras构建分类模型 1. tf.keras简介 2. 利用tf.keras构建神经网络分类模型 2.1 导入相应的库 2.2 数据读取与展示 2.3 数据归一化 2.4 构建模型 2.5 模型的编 ...

  10. SQL零基础入门学习(三)

    SQL零基础入门学习(二) SQL WHERE 子句 WHERE 子句用于提取那些满足指定条件的记录. SQL WHERE 语法 SELECT column1, column2, ... FROM t ...

最新文章

  1. Python将彩色图转换为灰度图
  2. 城市大脑不仅是AI系统,更是结合人类智慧的混合智能巨系统
  3. STM32 进阶教程 6 -  汇编与C混合编程
  4. 算法竞赛入门经典 写题笔记(第五章 图论算法与模型2)
  5. java2实用教程第5版第九章_java2实用教程(例子代码)第4版第九章.doc
  6. 中原大学 php,中原大学php全集视频教程
  7. Linux进程和计划任务管理(详细图例)
  8. 天牛须matlab,基于天牛须搜索算法(BAS)优化BP神经网络的权值阈值代码
  9. Scala入门到精通——第二十三节 高级类型 (二)
  10. 前端全栈大佬是如何使用javaScript实现一个无缝轮播
  11. Hackerlands:城市Hackerspaces的农村版本
  12. 电力装置的继电保护和自动装置设计规范_继电保护装置升级到微机保护装置
  13. 新兴IT企业特斯拉(九)——私有化风波
  14. 电路交换、报文交换和分组交换的区别
  15. python的cubes怎么使用_Python measure.marching_cubes方法代碼示例
  16. Java中按字母顺序对字符串字符进行排序的4种不同方法
  17. Centos7 合理分配 swap空间
  18. 欺骗的艺术——第二部分(8)
  19. 《C#零基础入门之百识百例》(二十一)数组遍历 -- 删除数组零元素
  20. Android 蓝牙开发——蓝牙连接(六)

热门文章

  1. osql 登陆mysql_命令行登录mysql报Segmentation fault故障解决
  2. python findall_Python 正则表达式:findall
  3. pandas之Series()菜鸟教程
  4. python 几何计算_计算几何-凸包算法 Python实现与Matlab动画演示
  5. springboot整合JDBC+Druid
  6. 3dmax材质通道插件_3dmax插件外挂神器【疯狂模渲大师蓝色经典版】第九章:渲染后期教程...
  7. pygame检测精灵与精灵的碰撞_Pygame(三)--走出黑暗的洞穴(2)
  8. java被oracle收购,sun被oracle收购了,openoffice和virtualbox会不会死?
  9. 服务器mysql_本地如何操作服务器的mysql,详细教程
  10. 实战HTML:动画背景网站登录界面