Tensorflow学习笔记No.2
使用函数式API构建神经网络
函数式API相比于keras.Sequential()具有更加灵活多变的特点。
函数式API主要应用于多输入多输出的网络模型。
利用函数式API构建神经网络主要分为3步,1.构建输入层,2.构建中间层与输出层并连接神经层,3.生成神经网络模型。
1.构建输入层
输入层的构建较为简单,调用keras.Input()方法来构建输入层。
1 input = keras.Input(shape = (28, 28))
shape参数是输入数据的形状(这里输入的是一个28*28的二维数据)。
2.构建中间层与输出层并连接神经层
上一篇博客中有提到过,输出层与中间层的差别主要在于激活函数/分类器的选用上,其他部分大致相同,所以这里放在一起讲。
函数式API是把神经网络层作为函数相互调用以达到连接神经层变成神经网络的目的。
可以在构建神经层的时候直接连接,其结构与Sequential模型相似。
1 x = keras.layers.Flatten()(input) #调用函数式API
2 x = keras.layers.Dense(32, activation = "relu")(x)
3 x = keras.layers.Dropout(0.5)(x)
4 x = keras.layers.Dense(64, activation = "relu")(x)
5 output = keras.layers.Dense(10, activation = "softmax")(x)
或者是先构建神经层,再按照自己需要的顺序相连。
1 a = keras.layers.Flatten()(input)
2 b = keras.layers.Dense(32, activation = "relu")
3 b = b(a)
4 c = keras.layers.Dropout(0.5)
5 c = z(b)
6 d = keras.layers.Dense(64, activation = "relu")
7 d = d(c)
8 output = keras.layers.Dense(10, activation = "softmax")
9 output = output(d)
不难看出,使用函数式API相对繁琐,但是能看出它的灵活性远高于Sequential模型。
3.生成神经网络模型
使用keras.Model()方法生成网络模型
1 model = keras.Model(inputs = input, outputs = output)
参数分别是神经网络的输入和输出层。
最后使用.compile()方法和.fit()方法确定模型训练流程并训练即可。
Tensorflow学习笔记No.2的更多相关文章
- 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是个常量 计 ...
随机推荐
- 使用Android的硬件缩放技术优化执行效率
Unity3D研究院之使用Android的硬件缩放技术优化执行效率 http://www.xuanyusong.com/archives/3205 Android中GLSurfaceView在横竖屏切 ...
- Mongos WoW
http://blog.csdn.net/yuleslie/article/details/7430094 https://github.com/mangostwo/ https://www.getm ...
- agumaster 出现实际股票数据
工程下载:https://files.cnblogs.com/files/xiandedanteng/agumaster20200430-3.zip --2020-04-30--
- Python 3.8.1 各版本下载地址
Version Operating System Description MD5 Sum File Size GPG Gzipped source tarball Source release f ...
- hyperledger explorer 结合 fabric1.4 搭建 区块链浏览器 踩坑记录
博主通过这篇博客的步骤搭建区块链浏览器:https://blog.csdn.net/qq_32675427/article/details/99946945 进行到下面这一步时出现各种异常,浪费了博主 ...
- 营销经验总结:如何才能提升h5游戏代入感?
HTML5游戏拥有即点即玩,无需下载,并具备传播性广的特点,这就使得商家看到了无限商机,如何让产品更加深入人心,是游戏推广最为重要的环节.优秀的代入感才是游戏产品宣传的关键,那么有哪些要素的支撑才能确 ...
- 获取JSO字符串的key和value值
import com.alibaba.fastjson.JSON; import java.util.ArrayList; import java.util.HashMap; import java. ...
- python连接websocket wss
def websocket_wss(): try: wss = create_connection(wss_url, timeout=10) if wss.status == 101: wss.sen ...
- pyhton:time模块和datetime模块
一.time模块 1.相关定义: time模块时间的表达有3种,时间戳,时间元祖,格式化时间 #时间戳: print(time.time())#获取当前时间戳.时间戳的计算是1970纪元后经过的浮点秒 ...
- 乔悟空-CTF-i春秋-Web-GetFlag
2020.09.07 今天发生了一些事情,世事无常,哎.好好的享受当下,该吃吃该喝喝好吧.人活一辈子,到底为了啥? 做题 题目 题目地址 做题 这个题目还行,思路比较清晰,没那么多奇怪的脑洞