every blog every motto: In the end, it’s not the years in your life that count. It’s the life in your years.

0. 前言

用skleran 封装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. 读取数据

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. 构建模型及训练

RandomizedSearchCV
步骤:

  1. 转换为sklearn的model(本节实现)
  2. 定义参数集合(下一节实现)
  3. 搜索参数(后续实现)
# RandomizedSearchCV
# 步骤
# 1. 转换为sklearn的model
# 2. 定义参数集合
# 3. 搜索参数def build_model(hidden_layers=1,layer_size=30,learning_rate=3e-3):model = keras.models.Sequential()model.add(keras.layers.Dense(layer_size,activation='relu',input_shape=x_train.shape[1:]))for _ in range(hidden_layers - 1):model.add(keras.layers.Dense(layer_size,activation='relu'))model.add(keras.layers.Dense(1))optimizer = keras.optimizers.SGD(learning_rate)model.compile(loss="mse",optimizer=optimizer)return model# 转成sklearn model
sklearn_model = keras.wrappers.scikit_learn.KerasRegressor(build_model)# 回调函数
callbacks = [keras.callbacks.EarlyStopping(patience=5,min_delta=1e-3)]
# 训练
history = sklearn_model.fit(x_train_scaled,y_train,epochs=100,validation_data=(x_valid_scaled,y_valid),callbacks=callbacks)

6. 学习曲线

# 学习曲线
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)

从零基础入门Tensorflow2.0 ----二、5.2实战sklearn封装keras模型(超参数搜索)相关推荐

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

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

  2. 《C#零基础入门之百识百例》(三十三)方法参数 -- 位置命名参数 -- 求长方体体积

    C#零基础入门 函数 -- 位置&命名参数 -- 求长方体体积 前言 一.位置参数 二,命名参数 三.实例练习 -- 求长方体体积 3.1 题目描述 3.2 练习目标 3.3 参考代码 前言 ...

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

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

  4. 黑客零基础入门教程:「黑客攻防实战从入门到精通(第二版)」堪称黑客入门天花板

    前言 您知道在每天上网时,有多少黑客正在浏览您计算机中的重要数据吗﹖黑客工具的肆意传播,使得即使是稍有点计算机基础的人,就可以使用简单的工具对网络中一些疏于防范的主机进行攻击,在入侵成功之后,对其中的 ...

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

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

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

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

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

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

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

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

  9. 机器学习基础|K折交叉验证与超参数搜索

    文章目录 交叉验证 交叉验证的概念 K的取值 为什么要用K折交叉验证 Sklearn交叉验证API 超参数搜索 超参数的概念 超参数搜索的概念 超参数搜索的原理 Sklearn超参数搜索API 实例 ...

  10. 零基础入门学Python(十二)—— 魔法方法(上)

    零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(上) 1. 构造和析构 1.1 _ _ init _ _(self[, ...]) ...

最新文章

  1. 云计算服务定义及优劣势—Vecloud微云
  2. LPC2103开发板I2C测试试验
  3. UIScrollView实现不全屏分页的小技巧
  4. Hibernate基本概念 (2)
  5. 今天我勇敢的点就一个gpio口
  6. Bootstrap列表组堆叠
  7. HCIE-Security Day13:防火墙双机热备实验(一)防火墙直路部署,上下行连接交换机
  8. 转载【C++】int转换为string的两种方法(to_string、字符串流)
  9. oracle中rollback的使用方法
  10. 公司mysql数据库设计与优化培训ppt
  11. 999C - Alphabetic Removals
  12. jqwidgets日历插件如何改为中文版24小时制和bootstrap的日期控件如何改成24小时制
  13. 面向对象思想----不看后悔!
  14. python簇状柱形图_使用Matplotlib绘制堆积条形图
  15. 揭开Java上传下载功能的神秘面纱
  16. win10无线网卡无法连接网络
  17. C语言 字符串解析strchr/strrchr/strtok//strtok_r函数使用
  18. 小白攻略(一):数学建模是什么,为什么,怎样做?
  19. Silvaco TCAD仿真8——网格mesh的意义(举例说明)
  20. ANDROID下面的游戏更新目录

热门文章

  1. mysql 多源复制 过滤_MYSQL 多源复制,过滤复制与应用场景
  2. Hyperledger Fabric1.4超详细环境搭建 搭建不出来本博主倒立写代码
  3. python numpy 数据类型为python对象-关于Numpy数据类型对象(dtype)使用详解
  4. mysql水平分表实践记录_MYSQL 分表实践
  5. oracle 关键字_oracle常见报错之无法验证 (约束) - 未找到父项关键字解决办法
  6. android 图片方向,Android图片处理:识别图像方向并显示实例教程
  7. multipartfile上传文件_Feign文件上传和部分源码解读
  8. apache commons Java包简介
  9. 三维重建笔记_SLAM简介
  10. OpenCV_(Corner Detect with Morphology) 基于形态学滤波的角点检测