| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Pytorch 残差网络 ResNet -> 正文阅读 |
|
[人工智能]Pytorch 残差网络 ResNet |
Pytorch 残差网络 ResNet0. 环境介绍环境使用 Kaggle 里免费建立的 Notebook 小技巧:当遇到函数看不懂的时候可以按 1. ResNet1.1 简介卷积神经网络中加更多的层不一定总是增加精度。 对于深度神经网络,如果我们能将新添加的层训练成恒等映射(identity function)
f
(
x
)
=
x
f(x)=x
f(x)=x,新模型和原模型将同样有效。 我的理解:大概意思就是如果添加新的层能减小误差就保留参数,如果添加新的层误差变大就训练其参数不生效,往 f ( x ) = x f(x) = x f(x)=x 上训练,其中 x x x 是输入, f ( x ) f(x) f(x) 是新加的一层运算后的结果。
1.2 残差块左侧是一个正常块,右侧是一个残差块:
具体的 ResNet 块细节,左侧不包含
1
×
1
1 \times 1
1×1 卷积,右侧包含
1
×
1
1 \times 1
1×1 卷积: 1.3 网络结构ResNet-18(类似 VGG 和 GoogLeNet,替换成了 ReNet 块):
2. 代码实现2.1 残差块
2.2 验证残差块输出形状输入与输出形状一致:
2.3 网络结构定义一个
第
1
1
1 段:
第
2
2
2 段:
第
3
3
3 段:
最后一段:
2.4 验证网络输出形状
2.5 训练
3. Q&AQ:
f
(
x
)
=
x
+
g
(
x
)
f(x) = x + g(x)
f(x)=x+g(x),这样就能保证结果至少不变坏吗?如果
g
(
x
)
g(x)
g(x) 不是变好,也不是什么都不做,而是变坏了呢? 假设:
f
,
g
f, g
f,g 是网络模型中的某些层的运算,令
y
1
=
f
(
x
)
y_1 = f(x)
y1?=f(x),
y
2
=
g
(
f
(
x
)
)
y_2 = g(f(x))
y2?=g(f(x)),
y
3
=
f
(
x
)
+
g
(
f
(
x
)
)
y_3 = f(x) + g(f(x))
y3?=f(x)+g(f(x)) Q:如果 x x x 和 g ( x ) g(x) g(x) 都很小怎么办呢?(待解决) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:20:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |