Tensorflow学习笔记No.1
使用tf.keras.Sequential()建立网络模型
整个过程可分为五步:
1创建Sequential模型,2添加所需要的神经层,3使用.compile方法确定模型训练结构,4使用.fit方法
使模型与训练数据“拟合”,5.predict方法进行预测。
1.建立Sequential模型
导入tensorflow模块,使用keras中的Sequential模型
import tensorflow as tf
model = tf.keras.Sequential()
keras.Senquential()模型是一个顺序堆叠模型,可以在模型中依次添加所需要的神经层
2.添加神经层
使用model.add()方法可以向建立好的模型中添加需要的神经层
首先是输入层
1 model.add(tf.keras.layers.Flatten(input_shape = (28, 28)))#输入的数据为 28*28的二维数据
Flatten是常用的输入层,可以把输入的多维数据展开成一维,便于输入到神经网络中。
input_shape参数是以元组的形式输入数据的维度。
然后是添加中间层,这里只介绍简单的几种中间层。
Dense:全连接神经网络层。
Dropout:对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。
1 model.add(tf.keras.layers.Dense(128, activation = "relu"))
2 model.add(tf.keras.layers.Dropout(0.5))
Dense中的第一个参数是只隐藏单元的数量,隐藏单元越多,神经网络就越复杂,activation参数是Dense层的激活函数。
Dropout是按照一定概率随机丢弃一些隐藏单元,避免隐藏单元之间出现过强的依赖性造成过拟合,Dropout层可以有效抑制过拟合,参数是随机丢弃隐藏单元的概率。
最后是添加分类器。
分类器也是一个中间层,激活函数选用某些用于分类的函数。
softmax就是一个常用的分类器。
1 model.add(keras.layers.Dense(10, activation='softmax'))
这里添加了一个softmax分类器,第一个参数是分类的类别,这是一个10分类的分类器。
3.使用.compile()方法确定模型训练流程
1 model.compile(optimizer = 'adam', #梯度下降
2 loss = 'sparse_categorical_crossentropy', #损失函数
3 metrics = ['acc'] #正确率
4 )
optimizer参数是选择模型梯度下降的传递优化器实例,也可以通过下面这种方式自定义优化器中的学习率。
1 optimizer = tf.keras.optimizers.Adam(learning_rate = 0.001)
loss参数是选择计算模型误差的损失函数,常见的有均方差‘mse’和'sparse_categorical_crossentropy'等。
metrics用于监视训练,它们是 tf.keras.metrics模块中的字符串名称或可调用对象。
4.使用.fit()方法训练模型
model.fit(train_image, train_label, epochs = 10,batch_size = 32,
validation_data = (test_image, test_label)
#显示测试集在训练中的测试情况
)
最开始的两个参数是训练数据和数据的标签。
epochs是迭代次数,也就是 对这些数据反复训练的次数。
batch_size每次迭代输入的数据数量。
validation_data监视迭代过程中在验证集上达到的效果。
5.评估和预测
1 model.evaluate(test_image, test_label)
使用.evaluate()方法对测试集进行评估。
1 model.predict(test_image[0])
使用.predict()方法对数据进行预测,返回一个预测的结果。
Tensorflow学习笔记No.1的更多相关文章
- Tensorflow学习笔记2:About Session, Graph, Operation and Tensor
简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...
- Tensorflow学习笔记2019.01.22
tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...
- Tensorflow学习笔记2019.01.03
tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...
- TensorFlow学习笔记之--[compute_gradients和apply_gradients原理浅析]
I optimizer.minimize(loss, var_list) 我们都知道,TensorFlow为我们提供了丰富的优化函数,例如GradientDescentOptimizer.这个方法会自 ...
- 深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识
深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识 在tf第一个例子的时候需要很多预备知识. tf基本知识 香农熵 交叉熵代价函数cross-entropy 卷积神经网络 s ...
- 深度学习-tensorflow学习笔记(2)-MNIST手写字体识别
深度学习-tensorflow学习笔记(2)-MNIST手写字体识别超级详细版 这是tf入门的第一个例子.minst应该是内置的数据集. 前置知识在学习笔记(1)里面讲过了 这里直接上代码 # -*- ...
- tensorflow学习笔记(4)-学习率
tensorflow学习笔记(4)-学习率 首先学习率如下图 所以在实际运用中我们会使用指数衰减的学习率 在tf中有这样一个函数 tf.train.exponential_decay(learning ...
- tensorflow学习笔记(3)前置数学知识
tensorflow学习笔记(3)前置数学知识 首先是神经元的模型 接下来是激励函数 神经网络的复杂度计算 层数:隐藏层+输出层 总参数=总的w+b 下图为2层 如下图 w为3*4+4个 b为4* ...
- tensorflow学习笔记(2)-反向传播
tensorflow学习笔记(2)-反向传播 反向传播是为了训练模型参数,在所有参数上使用梯度下降,让NN模型在的损失函数最小 损失函数:学过机器学习logistic回归都知道损失函数-就是预测值和真 ...
- tensorflow学习笔记(1)-基本语法和前向传播
tensorflow学习笔记(1) (1)tf中的图 图中就是一个计算图,一个计算过程. 图中的constant是个常量 计 ...
随机推荐
- xml selectnodes
[xML ]SelectNodes的用法 之前简单找个SelectNodes的例子看了看,写了读取XML文件节点的程序,但是节点数目有限制,后来仔细看看,是自己没完全弄清SelectNodes的用法, ...
- Photon PUN 二 大厅 & 房间
一, 简介 玩过 LOL , dota2, 王者荣耀 等MOBA类的游戏,就很容易理解大厅和房间了. LOL中一个服务器就相当与一个大厅; 什么电一,电二 ,,, 联通一区等 每一个区就相当于一个大厅 ...
- WPF实现手势解锁
桌面程序的解锁方式一般是账号密码,互联网的可以使用扫码解锁,甚至人脸识别.但扫码需要网络,人脸识别又较复杂.所以就想把安卓常用的手势解锁移植到桌面程序上. 先来张效果图,有兴趣的往下看,没兴趣的打扰了 ...
- Visual Studio编译Core程序部署到linux
一.背景 随着微软拥抱开源,推出Net Core框架,目前已经支持跨平台,能部署到Linux.MacOS.Windows等系统上. 下面我们就来分享一下Visual Studio编译好的代码部署到Li ...
- Java8 Functional(函数式接口)
Functional 函数式(Functional)接口 只包含一个抽象方法的接口,称为函数式接口. 你可以通过 Lambda 表达式来创建该接口的对象.(若 Lambda 表达式抛出一个受检异常(即 ...
- Kibana的安装
了解ELK Kibana 安装 Kibana的版本要和ES的一致 下载完毕后解压 这个解压就有点慢了 ELK的东西基本都是开箱即用的 解压后的目录 进入bin 双击启动kibana.bat 哎:启动从 ...
- 现象:当指定logback的FileNamePattern为日期2020-01-15后,如果有线程不断的往里写log,过了零点文件不会变成下一日2020-01-16,还是会在2020-01-15里继续写 结论:写log的线程不停,文件不会按日子更换。
logback版本:1.1.11 这个是我实验验证的,昨天我配置了一个logback,然后用两个线程不断往里写log,结果发现到了今天2020-01-16日,log文件还是昨天的logbackCfg. ...
- mysql jdbc连接时的小问题java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
这次重新修改老程序时出现了上面的错误,排查过后最终找到问题所在:root帐户默认不开放远程访问权限,所以需要修改一下相关权限. 打开MySQL目录下的my.ini文件(win10默认安装在C:\Pro ...
- 零基础一分钟入门Python
这篇文章面向所有想学python的小伙伴(甚至你从没听过编程),这篇文章将会带你以最快的速度入门python.赶快上车,时间来不及了... 一,下载和安装python 1.下载: 1.1 python ...
- Java查找指定文件中指定字符的个数
package lwl.youweb2.test; import java.io.BufferedReader; import java.io.FileReader; import java.io.I ...