Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
D_ACMER
apachecn-dl-zh
提交
46c36a28
A
apachecn-dl-zh
项目概览
D_ACMER
/
apachecn-dl-zh
与 Fork 源项目一致
Fork自
OpenDocCN / apachecn-dl-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apachecn-dl-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
46c36a28
编写于
1月 07, 2021
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021-01-07 20:18:50
上级
0fe6accf
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
5 deletion
+5
-5
new/adv-dl-tf2-keras/01.md
new/adv-dl-tf2-keras/01.md
+4
-4
new/adv-dl-tf2-keras/02.md
new/adv-dl-tf2-keras/02.md
+1
-1
未找到文件。
new/adv-dl-tf2-keras/01.md
浏览文件 @
46c36a28
...
...
@@ -427,7 +427,7 @@ model.add(Dense(hidden_units,
输出激活层还有其他选择,例如
`linear`
,
`sigmoid`
或
`tanh`
。
`linear`
激活是一种身份功能。 它将其输入复制到其输出。
`sigmoid`
功能更具体地是,称为
**逻辑 Sigmoid**
。 如果预测张量的元素将独立地映射在 0.0 和 1.0 之间,则将使用此方法。 与
`softmax`
中不同,预测张量的所有元素的总和不限于 1.0。 例如,
`sigmoid`
用作情感预测(从 0.0 到 1.0、0.0 不好,1.0 很好)或图像生成(0.0 映射到像素级别 0 和 1.0 映射到像素 255)的最后一层 。
`tanh`
函数将其输入映射在 -1.0 到 1.0 的范围内。 如果输出可以同时以正值和负值摆幅,则这一点很重要。
`tanh`
功能在循环神经网络的内部层中更普遍使用,但也已用作输出层激活。 如果在输出激活中使用 tanh 代替
`sigmoid`
,则必须适当缩放使用的数据。 例如,不是使用
!
[](
img/B14853_01_006.png
)
缩放
`[0.0, 1.0]`
范围内的每个灰度像素,而是使用!
[](
img/B14853_01_007.png
)
将其分配在
`[-1.0, 1.0]`
范围内。
`tanh`
函数将其输入映射在 -1.0 到 1.0 的范围内。 如果输出可以同时以正值和负值摆幅,则这一点很重要。
`tanh`
功能在循环神经网络的内部层中更普遍使用,但也已用作输出层激活。 如果在输出激活中使用 tanh 代替
`sigmoid`
,则必须适当缩放使用的数据。 例如,不是使用
`x = x / 255`
缩放
`[0.0, 1.0]`
范围内的每个灰度像素,而是使用
`x = (x - 127.5) / 127.5`
将其分配在
`[-1.0, 1.0]`
范围内。
下图“图 1.3.6”显示了
`sigmoid`
和
`tanh`
功能。 数学上,乙状结肠可以用以下公式表示:
...
...
@@ -460,9 +460,9 @@ model.add(Dense(hidden_units,
SGD 被认为是最基本的优化程序。 它是演算中梯度下降的简单版本。 在
**梯度下降**
(
**GD**
)中,追踪下坡函数的曲线可找到最小值,就像在山谷中下坡直至到达底部一样。
GD 算法如图 1.3.7 所示。 假设
`x`
是被调整以找到
`y`
的最小值(例如,损失函数)的参数(例如,权重)。 从
`x = -0.5`
的任意点开始。 梯度
!
[](
img/B14853_01_013.png
)
。 GD 算法强加
`x`
然后更新为!
[](
img/B14853_01_014.png
)
。
`x`
的新值等于旧值,再加上!
[](
img/B14853_01_015.png
)
缩放的梯度的相反值。 小数字!
[](
img/B14853_01_016.png
)
是指学习率。 如果
`ε = 0.01`
,则
`x`
的新值为 -0.48。 GD 是迭代执行的。 在每一步,
`y`
都将接近其最小值。 在
`x = 0.5`
时,!
[](
img/B14853_01_018.png
)
。 GD 已找到
`y = -1.25`
的绝对最小值。 渐变建议不要进一步改变
`x`
。
GD 算法如图 1.3.7 所示。 假设
`x`
是被调整以找到
`y`
的最小值(例如,损失函数)的参数(例如,权重)。 从
`x = -0.5`
的任意点开始。 梯度
`dy/dx = -2.0`
。 GD 算法强加
`x`
然后更新为
`x = -0.5 - ε(-2.0)`
。
`x`
的新值等于旧值,再加上
`ε`
缩放的梯度的相反值。 小数字
`ε`
是指学习率。 如果
`ε = 0.01`
,则
`x`
的新值为 -0.48。 GD 是迭代执行的。 在每一步,
`y`
都将接近其最小值。 在
`x = 0.5`
时,
`dy/dx = 0`
。 GD 已找到
`y = -1.25`
的绝对最小值。 渐变建议不要进一步改变
`x`
。
学习率的选择至关重要。 大的
!
[](
img/B14853_01_019.png
)
值可能找不到最小值,因为搜索只会在最小值附近来回摆动。 一方面,在找到最小值之前,较大的!
[](
img/B14853_01_020.png
)
值可能需要进行大量迭代。 在有多个最小值的情况下,搜索可能会陷入局部最小值。
学习率的选择至关重要。 大的
`ε`
值可能找不到最小值,因为搜索只会在最小值附近来回摆动。 一方面,在找到最小值之前,较大的
`ε`
值可能需要进行大量迭代。 在有多个最小值的情况下,搜索可能会陷入局部最小值。
![](
img/B14853_01_08.png
)
...
...
@@ -480,7 +480,7 @@ GD 通常不用于深度神经网络,因为遇到数百万个要训练的参
![](
img/B14853_01_021.png
)
在该等式中,
!
[](
img/B14853_01_022.png
)
和!
[](
img/B14853_01_023.png
)
分别是损耗函数的参数和梯度张量。
`g`
由损失函数的偏导数计算得出。 出于 GPU 优化的目的,建议最小批量大小为 2 的幂。 在建议的网络中,
`batch_size = 128`
。
在该等式中,
`θ`
和
`g = 1/m ᐁ[θ] ΣL`
分别是损耗函数的参数和梯度张量。
`g`
由损失函数的偏导数计算得出。 出于 GPU 优化的目的,建议最小批量大小为 2 的幂。 在建议的网络中,
`batch_size = 128`
。
“公式 1.3.8”计算最后一层参数更新。 那么,我们如何调整前几层的参数呢? 在这种情况下,应用微分链规则将导数传播到较低层并相应地计算梯度。 该算法在深度学习中称为
**反向传播**
。 反向传播的详细信息超出了本书的范围。 但是,可以在
[
这里
](
http://neuralnetworksanddeeplearning.com
)
找到很好的在线参考。
...
...
new/adv-dl-tf2-keras/02.md
浏览文件 @
46c36a28
...
...
@@ -770,7 +770,7 @@ DenseNet 建议在`Dense`块之前加上`BN-ReLU-Conv2D`,以及许多是增长
图 2.4.3:两个密集块之间的过渡层
但是,在将特征图传递到平均池之前,使用
`Conv2D(1)`
将其数量减少某个压缩因子
!
[](
img/B14853_02_004.png
)
。DenseNet 在实验中使用!
[](
img/B14853_02_005.png
)
。 例如,如果先前
`Dense`
块的最后串联的输出是
`(64, 64, 512)`
,则在
`Conv2D(1)`
之后,要素图的新尺寸将是
`(64, 64, 256)`
。 当压缩和降维放在一起时,过渡层由
`BN-Conv2D(1)-AveragePooling2D`
层组成。 实际上,批量归一化在卷积层之前。
但是,在将特征图传递到平均池之前,使用
`Conv2D(1)`
将其数量减少某个压缩因子
`0 < θ < 1`
。DenseNet 在实验中使用
`θ = 0.5`
。 例如,如果先前
`Dense`
块的最后串联的输出是
`(64, 64, 512)`
,则在
`Conv2D(1)`
之后,要素图的新尺寸将是
`(64, 64, 256)`
。 当压缩和降维放在一起时,过渡层由
`BN-Conv2D(1)-AveragePooling2D`
层组成。 实际上,批量归一化在卷积层之前。
现在,我们已经涵盖了 DenseNet 的重要概念。 接下来,我们将为
`tf.keras`
中的 CIFAR10 数据集构建并验证 DenseNet-BC。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录