every blog every motto:

0. 前言

计算图的构建,模型训练

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)
print(np.max(x_train),np.min(x_train))

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)
print(np.max(x_train_scaled),np.min(x_train_scaled))

4. 计算图

hidden_units = [100,100]
class_num = 10x = tf.placeholder(tf.float32,[None,28*28])
y = tf.placeholder(tf.int64,[None])
# 隐藏层
input_for_next_layer = x
for hidden_unit in hidden_units:input_for_next_layer = tf.layers.dense(input_for_next_layer,hidden_unit,activation=tf.nn.relu)# 输出层
logits = tf.layers.dense(input_for_next_layer,class_num)
# last_hidden_output * w(logits) -> softmax -> pro
# 1. logit -> softmax -> prob
# 2. labels -> ont_hot
# 3. calculate cross entropy
loss = tf.losses.sparse_softmax_cross_entropy(labels=y,logits=logits)# get accuracy
prediction = tf.argmax(logits,1)
correct_prediction = tf.equal(prediction,y)
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float64))# 训练
train_op = tf.train.AdamOptimizer(1e-3).minimize(loss)
print(x)
print(logits)

5. 开始训练

# sessioninit = tf.global_variables_initializer()
batch_size = 20
epochs = 10
train_steps_per_epoch = x_train.shape[0] // batch_size
valid_steps = x_valid.shape[0] // batch_sizedef eval_with_sess(sess,x,y,accuracy,images,labels,batch_size):eval_steps = images.shape[0] // batch_sizeeval_accuracies = []for step in range(eval_steps):batch_data = images[step * batch_size : (step+1)*(batch_size)]batch_label = labels[step * batch_size: (step + 1)*batch_size]accuracy_val = sess.run(accuracy,feed_dict = {x:batch_data,y:batch_label})eval_accuracies.append(accuracy_val)return np.mean(eval_accuracies)with tf.Session() as sess:sess.run(init)for epoch in range(epochs):for step in range(train_steps_per_epoch):batch_data = x_train_scaled[step*batch_size:(step + 1)*(batch_size)]batch_label = y_train[step*batch_size:(step+1)*batch_size]
#             print(batch_label.shape)
#             print(batch_data.shape)loss_val,accuracy_val,_ = sess.run([loss,accuracy,train_op],feed_dict = {x:batch_data,y:batch_label})print('\r[Train] epoch: %d,step: %d,loss:%3.5f,accuracy: %2.2f'%(epoch,step,loss_val,accuracy_val),end='')valid_accuracy = eval_with_sess(sess,x,y,accuracy,x_valid_scaled,y_valid,batch_size)print('\t[valid] acc : % 2.2f'%(valid_accuracy))

从零基础入门Tensorflow2.0 ----五、23TF1.0计算图构建,模型训练相关推荐

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

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

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

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

  3. Apache Flink 零基础入门(十五)Flink DataStream编程(如何自定义DataSource)

    数据源可以通过StreamExecutionEnvironment.addSource(sourceFunction)方式来创建,Flink也提供了一些内置的数据源方便使用,例如readTextFil ...

  4. 【转】Dynamics CRM 365零基础入门学习(五)权限管理

    一:安全角色 Microsoft Dynamics 365中的安全角色是各种实体的特权和访问级别矩阵. 它们根据其功能分组在不同的选项卡下. 这些组包括:核心记录,营销,销售,服务,业务管理,服务管理 ...

  5. python和循环语句_Python 小白零基础入门 -- 条件语句和循环语句

    Python 小白零基础入门 -- 条件语句和循环语句 点击上方 "Python 读数", 选择 "星标" 公众号 重磅干货, 第一时间送达 Python 零基 ...

  6. 【学习记录】Python零基础入门(五)

    第五章 Python零基础入门之条件.循环及其他语句 本人自学的主要教材为Magnus Lie Hetland的Beginning Python:From Novice to Professional ...

  7. sql数据库教程百度云_绘画自学零基础入门教程|五天学会绘画pdf百度云下载!...

    绘画自学零基础入门教程|五天学会绘画pdf百度云下载!画画是可以让人留存记忆的事情.我自己就很喜欢画画来记录生活中一些特别的日子.场景还有我的家人朋友们.有时候,比照片更有故事感和纪念意义-有空拿出来 ...

  8. 零基础入门转录组分析——第五章(表达定量)

    零基础入门转录组分析--第五章(表达定量) 目录 零基础入门转录组分析--第五章(表达定量) 1. 序列比对结果的复查 2. 表达定量 3. 提取有效信息 4. 合并多个样本定量结果 5. 进一步修改 ...

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

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

  10. 五万字15张导图Java自学路线,小白零基础入门,程序员进阶,收藏这篇就够了

    本文收录于<技术专家修炼> 文中配套资料合集 路线导图高清源文件 点击跳转到文末点击底部卡片回复「资料」领取 哈喽,大家好,我是一条~ 最近粉丝问我有没有Java自学路线,有了方向才能按图 ...

最新文章

  1. IDEA 强大的 Live Templates,代码生成利器
  2. 超强后浪:14岁考上研究生,如今17岁的他或将成为全国最小的博士生!
  3. java http头信息
  4. docker yml mysql_Docker安装Mysql(docker-compose.yml)
  5. java socket 包头包体_使用JAVA上抓取Socket服务端和客户端通信TCP数据包
  6. 怎么做装修预算?装修预算需要注意的三大事项
  7. OpenGl文章 Android OpenGL ES 简明开发教程
  8. 中兴通讯:已就处罚事件进行充分沟通 明起复牌
  9. python--条件判断和循环--3
  10. Linux 创建静态库(.a)和动态库(.so)
  11. 播放.avi后缀视频报出0xc00d5212,编码格式不支持
  12. 档案计算机管理软件,档案管理软件系统
  13. 马来西亚动画片《Ribbit》将在尼亚加拉电影节中首映
  14. linux下几种目标文件的分析
  15. 互联网公司分布式系统架构演进之路
  16. 微信小程序如何封装api接口
  17. 云波社区 l Mecha Morphing(变形机甲)游戏介绍
  18. uview tabs切换让item始终居中
  19. 【Git从青铜到王者】第二篇:Git的初始
  20. 保姆级Google谷歌浏览器安装路径从C盘转移

热门文章

  1. python还是c+_人生苦短,我选C++,Python,还是Java?
  2. About KaiSarH
  3. Javascript:遍历json数据的方法
  4. C#:系统学习笔记(一)MVC基础篇
  5. java跳跳球代码,README.md
  6. 南加大计算机科学博士,美国南加州大学计算机科学博士专业介绍
  7. 可变车道怎么走不违章_可变车道怕走错扣分罚款,学学老司机的办法,新手司机学会不吃亏...
  8. Git pull(拉取),push(上传)命令整理
  9. 我是不是得工作恐惧症了
  10. opencv图像分析与处理(4)- 频率域滤波的基础概念