从零基础入门Tensorflow2.0 ----五、23TF1.0计算图构建,模型训练
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计算图构建,模型训练相关推荐
- 【天池赛事】零基础入门语义分割-地表建筑物识别 Task5:模型训练与验证
[天池赛事]零基础入门语义分割-地表建筑物识别 Task1:赛题理解与 baseline(3 天) – 学习主题:理解赛题内容解题流程 – 学习内容:赛题理解.数据读取.比赛 baseline 构建 ...
- 零基础入门--中文命名实体识别(BiLSTM+CRF模型,含代码)
https://github.com/mali19064/LSTM-CRF-pytorch-faster 中文分词 说到命名实体抽取,先要了解一下基于字标注的中文分词. 比如一句话 "我爱北 ...
- Apache Flink 零基础入门(十五)Flink DataStream编程(如何自定义DataSource)
数据源可以通过StreamExecutionEnvironment.addSource(sourceFunction)方式来创建,Flink也提供了一些内置的数据源方便使用,例如readTextFil ...
- 【转】Dynamics CRM 365零基础入门学习(五)权限管理
一:安全角色 Microsoft Dynamics 365中的安全角色是各种实体的特权和访问级别矩阵. 它们根据其功能分组在不同的选项卡下. 这些组包括:核心记录,营销,销售,服务,业务管理,服务管理 ...
- python和循环语句_Python 小白零基础入门 -- 条件语句和循环语句
Python 小白零基础入门 -- 条件语句和循环语句 点击上方 "Python 读数", 选择 "星标" 公众号 重磅干货, 第一时间送达 Python 零基 ...
- 【学习记录】Python零基础入门(五)
第五章 Python零基础入门之条件.循环及其他语句 本人自学的主要教材为Magnus Lie Hetland的Beginning Python:From Novice to Professional ...
- sql数据库教程百度云_绘画自学零基础入门教程|五天学会绘画pdf百度云下载!...
绘画自学零基础入门教程|五天学会绘画pdf百度云下载!画画是可以让人留存记忆的事情.我自己就很喜欢画画来记录生活中一些特别的日子.场景还有我的家人朋友们.有时候,比照片更有故事感和纪念意义-有空拿出来 ...
- 零基础入门转录组分析——第五章(表达定量)
零基础入门转录组分析--第五章(表达定量) 目录 零基础入门转录组分析--第五章(表达定量) 1. 序列比对结果的复查 2. 表达定量 3. 提取有效信息 4. 合并多个样本定量结果 5. 进一步修改 ...
- 视频编码零基础入门(0):零基础,史上最通俗视频编码技术入门
[来源申明]本文引用了微信公众号"鲜枣课堂"的<视频编码零基础入门>文章内容.为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作 ...
- 五万字15张导图Java自学路线,小白零基础入门,程序员进阶,收藏这篇就够了
本文收录于<技术专家修炼> 文中配套资料合集 路线导图高清源文件 点击跳转到文末点击底部卡片回复「资料」领取 哈喽,大家好,我是一条~ 最近粉丝问我有没有Java自学路线,有了方向才能按图 ...
最新文章
- IDEA 强大的 Live Templates,代码生成利器
- 超强后浪:14岁考上研究生,如今17岁的他或将成为全国最小的博士生!
- java http头信息
- docker yml mysql_Docker安装Mysql(docker-compose.yml)
- java socket 包头包体_使用JAVA上抓取Socket服务端和客户端通信TCP数据包
- 怎么做装修预算?装修预算需要注意的三大事项
- OpenGl文章 Android OpenGL ES 简明开发教程
- 中兴通讯:已就处罚事件进行充分沟通 明起复牌
- python--条件判断和循环--3
- Linux 创建静态库(.a)和动态库(.so)
- 播放.avi后缀视频报出0xc00d5212,编码格式不支持
- 档案计算机管理软件,档案管理软件系统
- 马来西亚动画片《Ribbit》将在尼亚加拉电影节中首映
- linux下几种目标文件的分析
- 互联网公司分布式系统架构演进之路
- 微信小程序如何封装api接口
- 云波社区 l Mecha Morphing(变形机甲)游戏介绍
- uview tabs切换让item始终居中
- 【Git从青铜到王者】第二篇:Git的初始
- 保姆级Google谷歌浏览器安装路径从C盘转移
热门文章
- python还是c+_人生苦短,我选C++,Python,还是Java?
- About KaiSarH
- Javascript:遍历json数据的方法
- C#:系统学习笔记(一)MVC基础篇
- java跳跳球代码,README.md
- 南加大计算机科学博士,美国南加州大学计算机科学博士专业介绍
- 可变车道怎么走不违章_可变车道怕走错扣分罚款,学学老司机的办法,新手司机学会不吃亏...
- Git pull(拉取),push(上传)命令整理
- 我是不是得工作恐惧症了
- opencv图像分析与处理(4)- 频率域滤波的基础概念