every blog every motto: What doesn’t kill you makes you stronger.

0. 前言

本节实战回调函数,以及关于tensorboard的使用。

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. 读取数据

fashion_mnist = keras.datasets.fashion_mnist
# print(fashion_mnist)
(x_train_all,y_train_all),(x_test,y_test) = fashion_mnist.load_data()
x_valid,x_train = x_train_all[:5000],x_train_all[5000:]
y_valid,y_train = y_train_all[:5000],y_train_all[5000:]
# 打印格式
print(x_valid.shape,y_valid.shape)
print(x_train.shape,y_train.shape)
print(x_test.shape,y_test.shape)

3. 数据归一化

# 数据归一化
from sklearn.preprocessing import StandardScalerscaler = StandardScaler()
# x_train:[None,28,28] -> [None,784]
x_train_scaled = scaler.fit_transform(x_train.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)
x_valid_scaled = scaler.transform(x_valid.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)
x_test_scaled = scaler.transform(x_test.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)

4. 构建模型

# tf.keras.models.Sequential()
# 构建模型# 创建对象
"""model = keras.models.Sequential()
model.add(keras.layers.Flatten(input_shape=[28,28]))
model.add(keras.layers.Dense(300,activation='sigmoid'))
model.add(keras.layers.Dense(100,activation='sigmoid'))
model.add(keras.layers.Dense(10,activation='softmax'))"""# 另一种写法
model = keras.models.Sequential([keras.layers.Flatten(input_shape=[28,28]),keras.layers.Dense(300,activation='sigmoid'),keras.layers.Dense(100,activation='sigmoid'),keras.layers.Dense(10,activation='softmax')
])#
model.compile(loss='sparse_categorical_crossentropy',optimizer='sgd',metrics=['accuracy'])

5. 回调函数

# 回调函数 Tensorboard(文件夹)\earylystopping\ModelCheckpoint(文件名)
logdir = os.path.join("callbacks")
print(logdir)
if not os.path.exists(logdir):os.mkdir(logdir)
# 文件名
output_model_file = os.path.join(logdir,"fashion_mnist_model.h5")callbacks = [keras.callbacks.TensorBoard(logdir),keras.callbacks.ModelCheckpoint(output_model_file,save_best_only=True),keras.callbacks.EarlyStopping(patience=5,min_delta=1e-3),
]

6. 训练

# 开始训练
history = model.fit(x_train_scaled,y_train,epochs=10,validation_data=(x_valid_scaled,y_valid),callbacks=callbacks)

6.2 学习曲线

# 画图
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)

7. 测试集上

model.evaluate(x_test_scaled,y_test)

8 tensorborad展示

8.1 查看callbacks文件结构

  1. 切换到代码所在路径下
tree

8.2 查看本地端口

  1. 在终端键入如下命令(注意是代码所在路径下)
tensorboard --logdir=callbacks

显示如下:

8.3 浏览器查看

  1. 键入本地地址http://localhost:6006/

    完!

从零基础入门Tensorflow2.0 ----一、1.3 实战分类模型(实战回调函数)相关推荐

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

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

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

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

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

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

  4. 零基础入门天池NLP赛事之——新闻文本分类(5)

    基于深度学习的文本分类 一.学习目标: 学习Word2Vec的使用和基础原理 学习使用TextCNN.TextRNN进行文本表示 学习使用HAN网络结构完成文本分类 二.文本表示方法 Part3: 词 ...

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

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

  6. 天池赛题解析:零基础入门语义分割-地表建筑物识别-CV语义分割实战(附部分代码)

    赛题内容 赛题背景 赛题以计算机视觉为背景,要求选手使用给定的航拍图像训练模型并完成地表建筑物识别任务.为更好的引导大家入门,我们为本赛题定制了学习方案和学习任务,具体包括语义分割的模型和具体的应用案 ...

  7. 黑客零基础入门教程《Python安全攻防:渗透测试实战指南》极致经典,学完即可包吃包住

    前言 网络江湖,风起云涌,攻防博弈,从未间断,且愈演愈烈.从架构安全到被动纵深防御,再到主动防御.安全智能,直至进攻反制,皆直指安全的本质--攻防.未知攻,焉知防! 每一位网络安全从业者都有仗剑江湖的 ...

  8. Task04——零基础入门NLP - 基于深度学习的文本分类1

    学习目标 学习fasttext使用和基本原理 学会使用验证集进行调参

  9. 《零基础入门学习Python》学习过程笔记【30模块中的函数,os模块,ospath模块中的函数(看了一点)】...

    注:os操作系统 1.如何使用模块中的函数? 先导入模块 import模块名 再用模块名.函数() >>> import random >>> random.ran ...

  10. 书籍推荐:零基础入门学习Python

    零基础入门学习Python pdf下载 所属网站分类: 资源下载 > python电子书 作者:goodbody 链接: http://www.pythonheidong.com/blog/ar ...

最新文章

  1. How to install sougoupinyin on Debian/Ubuntu.
  2. 张亚勤:对于产业来讲,深度学习的黄金时代刚刚开始
  3. java 著名的应用程序_即刻就业:java的应用程序有哪些
  4. dfs遍历和bfs遍历python_广度优先遍历(BFS)和深度优先遍历(DFS)
  5. 牛客小白月赛11:Rinne Loves Data Structure
  6. LeetCode每日打卡 - 汉明距离
  7. jp摩根的人都在学python么_摩根大通已要求所有资管部门员工必须学习编程
  8. soem学习2 osal
  9. 手机uc7.2java版下载_UC浏览器 JAVA
  10. HGIMDA:用于miRNA-疾病关联预测的异构图推断
  11. 9月最新版 H5移动棋牌游戏联运推广平台移动游戏系统源代码下载(带安装说明)
  12. 论文: TextBoxes
  13. 计算机考试如何使用电脑上的计算器
  14. 弱加密算法有哪几种_常见的几种加密方法
  15. 读《不乖教师的正能量》摘抄
  16. 【CVX】Equivalent convex problems (Huber) Log-optimal investment strategy
  17. 卓越的教练是如何训练高手的
  18. 金仓KFS for Oracle RAC one node安装部署
  19. QML+Qt音视频播放器
  20. Verilog HDLBits 第八期:3.1.2 Multiplexer

热门文章

  1. c# 存储图片到oracle,c# winform 读取oracle中blob字段的图片并且显示到pictureBox里 保存进库...
  2. oracle分析函数-排名函数
  3. 关于Linux系统启动过程,你应该了解这些
  4. php中的str replace,PHP字符串替换str_replace()函数4种用法详解
  5. mysql的粒度_MySQL中权限的粒度和时效性
  6. ni max不能连续采集图像_1.6视觉检测项目过程分解——程序的连续运行
  7. php 五子棋源联机版_五子棋服务器客户端联机对战 C++版完整代码
  8. 动态分配算法_【原创连载】算法素颜(第4篇):空间复杂度你真的懂了吗?
  9. Echarts数据可视化特效散点图点动态闪烁效果
  10. Java程序中调用Python脚本的方法