Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
安浅Y
apachecn-dl-zh
提交
db3fcb52
A
apachecn-dl-zh
项目概览
安浅Y
/
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,体验更适合开发者的 AI 搜索 >>
提交
db3fcb52
编写于
12月 11, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-12-11 18:18:55
上级
a602f7c0
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
73 addition
and
57 deletion
+73
-57
new/ai-py/01.md
new/ai-py/01.md
+6
-5
new/ai-py/03.md
new/ai-py/03.md
+12
-11
new/ai-py/04.md
new/ai-py/04.md
+4
-4
new/ai-py/12.md
new/ai-py/12.md
+22
-22
new/ai-py/17.md
new/ai-py/17.md
+11
-11
new/gan-proj/1.md
new/gan-proj/1.md
+2
-1
new/gan-proj/4.md
new/gan-proj/4.md
+3
-3
new/gan-proj/5.md
new/gan-proj/5.md
+6
-0
new/gan-proj/6.md
new/gan-proj/6.md
+1
-0
new/gan-proj/7.md
new/gan-proj/7.md
+5
-0
new/gan-proj/8.md
new/gan-proj/8.md
+1
-0
未找到文件。
new/ai-py/01.md
浏览文件 @
db3fcb52
...
...
@@ -109,11 +109,12 @@
机器学习可以通过各种方式进一步分类。 我们最喜欢的分类之一是 Pedro Domingos 在他的书
*主算法*
中提供的分类。 在他的书中,他根据萌芽了思想的科学领域对机器学习进行了分类。 例如,遗传算法起源于生物学概念。 以下是完整的分类,Domingos 为流派使用的名称,每个流派使用的主要算法以及值得注意的支持者:
|
**流派**
|
**来源**
|
**主导算法**
|
**支持者**
|
| 符号主义者 | 逻辑与哲学 | 反演 | 汤姆·米切尔史蒂夫·麦格尔顿罗斯·昆兰 |
| 连接主义者 | 神经科学 | 反向传播 | Yan LeCun 杰弗里·欣顿尤舒亚·本吉奥(Yoshua Bengio) |
| 进化论者 | 生物学 | 基因编程 | 约翰·科扎约翰·霍兰德霍德·利普森 |
| 贝叶斯 | 统计 | 概率推断 | 大卫·赫克曼犹太珍珠迈克尔·乔丹 |
| 模拟器 | 心理学 | 内核机器 | 彼得·哈特弗拉基米尔·瓦普尼克道格拉斯·霍夫施塔特 |
| --- | --- | --- | --- |
| 符号主义者 | 逻辑与哲学 | 反演 | Tom Mitchell、Steve Muggleton、Ross Quinlan |
| 连接主义者 | 神经科学 | 反向传播 | Yan LeCun、Geoffrey Hinton、Yoshua Bengio |
| 进化论者 | 生物学 | 基因编程 | John Koza、John Holland、Hod Lipson |
| 贝叶斯 | 统计 | 概率推断 | David Heckerman、Judea Pearl、Michael Jordan |
| 模拟器 | 心理学 | 内核机器 | Peter Hart、Vladimir Vapnik、Douglas Hofstadter |
**符号主义者**
:符号主义者使用归纳或反演的概念作为主要工具。 当使用归纳法时,逆推演不是从前提和结论开始,而是从一系列前提和结论开始,然后反向进行以填补缺失的部分。
...
...
new/ai-py/03.md
浏览文件 @
db3fcb52
...
...
@@ -119,15 +119,15 @@
继续以贷款违约为例,让我们考虑一些最重要的功能,以便做出准确的预测。 这是该列表的第一个选项。 由于篇幅所限,我们将不列出所有通常使用的功能。 我们将从数据中学到的内容添加和删除项目:
<colgroup><col>
<col>
<col></colgroup>
|
**功能名称**
|
**功能描述**
|
**为什么有用?**
|
|
**特征名称**
|
**特征描述**
|
**为什么有用?**
|
|
--- | --- | ---
|
| 欠款帐户 | 借款人现在拖欠的帐户数。 | 如果借款人在支付账单方面遇到困难,他们可能会在支付新贷款方面遇到困难。 |
| 贸易账户 | 在过去 24 个月内开设的交易数量。 | 如果数量太少,这只是一个问题。 |
| 借款人地址 | 借款人在贷款申请中提供的地址。 | 放下 地址是唯一的。 唯一变量不提供预测能力。 |
| 邮政编码 | 借款人在贷款申请中提供的邮政编码。 | 这不是唯一的,可以具有预测能力。 |
| 年收入 | 借款人在注册期间提供的自报年收入。 | 更多的收入使借款人可以更轻松地处理更大的付款。 |
| 当前余额 | 所有帐户的平均当前余额。 | 孤立地没有价值。 需要相对。 |
|
冲
销 | 12 个月内的注销次数。 | 指示借款人以前的违约行为。 |
|
注
销 | 12 个月内的注销次数。 | 指示借款人以前的违约行为。 |
| 逾期金额 | 借款人现在拖欠其帐户的逾期金额。 | 指示借款人以前的违约行为。 |
| 最早的帐户 | 自最早的循环帐户开设以来的月数。 | 表示借款人借钱的经历。 |
| 就业时间 | 就业年限。 | 表示借款人的稳定性。 |
...
...
@@ -138,14 +138,15 @@
| 自上次公开记录以来的月数 | 自上次公开记录以来的月数。 | 指示先前的财务困难 |
| 逾期帐户数 | 逾期 120 天或以上的帐户数 | 当前财务困难的指示 |
| 公开记录 | 贬损的公共记录数 | 指示先前的财务困难 |
|
术语
| 每月偿还贷款的次数。 | 贷款时间越长,潜在的违约可能性就越大。 |
|
项目
| 每月偿还贷款的次数。 | 贷款时间越长,潜在的违约可能性就越大。 |
| 当前总余额 | 所有帐户的当前总余额 | 孤立地没有价值。 需要相对。 |
正如我们所看到的,其中某些变量本身并没有提供含义,需要将它们组合起来以进行预测。 这将是特征工程的一个例子。 新变量的两个示例是:
<colgroup><col>
<col>
<col></colgroup>
| 信贷运用 | 在所有交易中将平衡到信用额度。 当前余额与信用额度的比较。 | 较高的百分比表示借款人“已用光”,并且在获得新的信贷方面遇到困难。 |
| 债务到收入 | 使用每月总债务支付的总债务(不包括抵押和请求的贷款)除以借款人的自我报告的每月收入来计算。 | 较低的债务对收入比率表明借款人有足够的资源来偿还其债务,并且不应该有满足这些债务的问题。 |
|
**特征名称**
|
**特征描述**
|
**为什么有用?**
|
| --- | --- | --- |
| 信贷比例 | 在所有交易中将平衡到信用额度。 当前余额与信用额度的比较。 | 较高的百分比表示借款人“已用光”,并且在获得新的信贷方面遇到困难。 |
| 债务收入比 | 使用每月总债务支付的总债务(不包括抵押和请求的贷款)除以借款人的自我报告的每月收入来计算。 | 较低的债务对收入比率表明借款人有足够的资源来偿还其债务,并且不应该有满足这些债务的问题。 |
# 数据准备
...
...
@@ -282,13 +283,13 @@
确认要求之后,我们现在可以考虑用于模型部署的高级架构。 以下是多种选择。 无论如何,这并不是一个详尽的清单,但它确实包含了一些较流行的架构:
<colgroup><col>
<col>
<col>
<col>
<col></colgroup>
| |
**RESTful API 架构**
|
**共享数据库架构**
|
**流架构**
|
**移动应用架构**
|
|
**训练方法**
| 批量 | 批量 | 流媒体 | 流媒体 |
|
**预测方法**
| 即时的 | 批量 | 流媒体 | 即时的 |
| --- | --- | --- | --- | --- |
|
**训练方法**
| 批量 | 批量 | 流式 | 流式 |
|
**预测方法**
| 即时 | 批量 | 流式 | 即时 |
|
**结果交付**
| 通过 RESTful API | 通过共享数据库 | 通过消息队列流式传输 | 通过移动设备上的进程内 API |
|
**预测延迟**
| 低 | 高 | 非常低 | 低 |
|
**系统可维护性**
| 中 | 简单 | 难 | 中 |
|
**系统可维护性**
| 中 | 简单 |
困
难 | 中 |
如表中所总结,这四个选项各有利弊。 当我们深入研究架构的细节时,还需要考虑更多的考虑因素。 作为示例,可以使用模块化微服务架构或以整体方式来实现这些架构中的每一个。 同样,选择应该由业务需求决定。 例如,可以选择整体方法,因为我们的用例非常有限,需要极低的延迟。
...
...
new/ai-py/04.md
浏览文件 @
db3fcb52
...
...
@@ -461,17 +461,17 @@ print(data)
这样可能会产生更好的性能。 但是,现在让我们看看如何对这个示例进行一次热编码。 为了实现此一个变量的一次性编码,我们为每个值创建了一个新功能。 在这种情况下,我们的一些数据(您可能会在野外遇到的东西)可能看起来像这样:
<colgroup><col>
<col>
<col>
<col></colgroup>
|
**红色**
|
**黄色**
|
**绿色**
|
**状态**
|
| 1 | 0 | 0 | 红 |
| --- | --- | --- | --- |
| 1 | 0 | 0 | 红色 |
| 0 | 1 | 0 | 黄色 |
| 0 | 0 | 1 | 绿色 |
| 0 | 0 | 1 | 绿色 |
由于我们已经对数据进行了一次热编码,因此状态功能现在变得多余,因此我们可以从数据集中消除它:
<colgroup><col>
<col>
<col></colgroup>
|
**红色**
|
**黄色**
|
**绿色**
|
| --- | --- | --- |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
...
...
@@ -479,8 +479,8 @@ print(data)
此外,我们可以从其他两个颜色特征中计算出任何颜色特征的值。 如果红色和黄色都为 0,则意味着绿色需要为 1,依此类推。 因此,在一键编码中,我们始终可以删除其中一项功能而不会丢失信息。 像这样:
<colgroup><col>
<col></colgroup>
|
**红色**
|
**黄色**
|
| --- | --- |
| 1 | 0 |
| 0 | 1 |
| 0 | 0 |
...
...
new/ai-py/12.md
浏览文件 @
db3fcb52
...
...
@@ -306,40 +306,40 @@ Amazon Rekognition 最受欢迎的一些用例和应用程序包括:
Amazon Translate 是另一项 Amazon 服务,可用于将以一种语言编写的大量文本翻译成另一种语言。 Amazon Translate 是按使用付费的,因此仅在您提交需要翻译的内容时才需要付费。 作为 2019 年 10 月的,Amazon Translate 支持 32 种语言:
<colgroup><col>
<col></colgroup>
|
**语言**
|
**语言代码**
|
| 阿拉伯 | 用 |
| 简体中文) | zh |
| 中国传统的) | zh-TW |
| --- | --- |
| 阿拉伯 | ar |
| 简体中文 | zh |
| 繁体中文 | zh-TW |
| 捷克文 | cs |
| 丹麦文 | da |
| 荷兰语 |
NL
|
| 英语 |
在
|
| 芬兰 |
是
|
| 荷兰语 |
nl
|
| 英语 |
en
|
| 芬兰 |
fi
|
| 法文 | fr |
| 德语 | de |
| 希腊语 |
他
|
| 希腊语 |
el
|
| 希伯来语 | he |
|
没有。 | 你好
|
|
印地语 | hi
|
| 匈牙利 | hu |
| 印度尼西亚 |
ID
|
|
义大利文 | 它
|
| 日本 |
和
|
| 韩语 |
KO
|
| 马来语 |
多发性硬化症
|
| 挪威 |
没有
|
| 印度尼西亚 |
id
|
|
意大利文 | it
|
| 日本 |
ja
|
| 韩语 |
ko
|
| 马来语 |
ms
|
| 挪威 |
no
|
| 波斯语 | fa |
|
抛光 | PL
|
| 葡萄牙语 |
对于
|
|
波兰语 | pl
|
| 葡萄牙语 |
pt
|
| 罗马尼亚语 | ro |
| 俄语 | ru |
| 西班牙文 |
它是
|
| 西班牙文 |
es
|
| 瑞典 | sv |
| 泰国 |
日
|
| 泰国 |
th
|
| 土耳其 | tr |
| 乌克兰 |
英国
|
| 乌尔都语 |
从
|
| 越南文 |
我们
|
| 乌克兰 |
uk
|
| 乌尔都语 |
ur
|
| 越南文 |
vi
|
除少数例外,大多数这些语言都可以从一种翻译为另一种。 用户还可以向字典中添加项目以自定义术语,并包括特定于其组织或用例的术语,例如品牌和产品名称。
...
...
new/ai-py/17.md
浏览文件 @
db3fcb52
...
...
@@ -449,22 +449,22 @@ plt.show()
为了理解 HMM,让我们考虑
**旅行商问题**
(
**TSP**
)的版本。 在此示例中,推销员必须在以下三个城市之间旅行才能工作:伦敦,巴塞罗那和纽约。 他的目标是最大程度地减少旅行时间,以使其成为最有效率的人。 考虑到他的工作承诺和时间表,我们有一组概率决定了从城市
`X`
到城市
`Y`
的机会。 在给出的以下信息中,
`P(X -> Y)`
表示从城市
`X`
到城市
`Y`
的概率:
<colgroup><col>
<col></colgroup>
|
**城市**
|
**概率**
|
| P(伦敦->伦敦) | 0.10 |
| P(伦敦->巴塞罗那) | 0.70 |
| P(伦敦-> NY) | 0.20 |
| P(巴塞罗那->巴塞罗那) | 0.15 |
| P(巴塞罗那->伦敦) | 0.75 |
| P(巴塞罗那-> NY) | 0.10 |
| P(纽约->纽约) | 0.05 |
| P(纽约->伦敦) | 0.60 |
| P(纽约州->巴塞罗那) | 0.35 |
| --- | --- |
|
`P(London->London)`
| 0.10 |
|
`P(London->Barcelona)`
| 0.70 |
|
`P(London-> NY)`
| 0.20 |
|
`P(Barcelona->Barcelona)`
| 0.15 |
|
`P(Barcelona->London)`
| 0.75 |
|
`P(Barcelona-> NY)`
| 0.10 |
|
`P(NY->NY)`
| 0.05 |
|
`P(NY->London)`
| 0.60 |
|
`P(NY->Barcelona)`
| 0.35 |
让我们用过渡矩阵表示此信息:
<colgroup><col>
<col>
<col>
<col></colgroup>
| |
**伦敦**
|
**巴塞罗那**
|
**纽约**
|
| --- | --- | --- | --- |
|
**伦敦**
| 0.10 | 0.70 | 0.20 |
|
**巴塞罗那**
| 0.75 | 0.15 | 0.10 |
|
**纽约**
| 0.60 | 0.35 | 0.05 |
...
...
new/gan-proj/1.md
浏览文件 @
db3fcb52
...
...
@@ -106,7 +106,8 @@ GAN 的架构具有两个基本元素:生成器网络和判别器网络。 每
虚拟 GAN 中的生成器网络是一个简单的前馈神经网络,具有五层:输入层,三个隐藏层和输出层。 让我们仔细看看生成器(虚拟)网络的配置:
|
**层#**
|
**层名称**
|
**配置**
|
|
**编号**
|
**层名称**
|
**配置**
|
| --- | --- | --- |
| 1 | 输入层 |
`input_shape=(batch_size, 100)`
,
`output_shape=(batch_size, 100)`
|
| 2 | 密集层 |
`neurons=500`
,
`input_shape=(batch_size, 100)`
,
`output_shape=(batch_size, 500)`
|
| 3 | 密集层 |
`neurons=500`
,
`input_shape=(batch_size, 500)`
,
`output_shape=(batch_size, 500)`
|
...
...
new/gan-proj/4.md
浏览文件 @
db3fcb52
...
...
@@ -103,11 +103,11 @@ L 等人研究了张量如何从第一层流到最后一层。 下图显示了
| --- | --- | --- |
| 1. | 输入层 |
`input_shape=(batch_size, 64, 64, 3)`
,
`output_shape=(batch_size, 64, 64, 3)`
|
| 2. | 2D 卷积层 |
`filters=128`
,
`kernel_size=(5, 5)`
,
`strides=(1, 1)`
,
`padding='valid'`
,
`input_shape=(batch_size, 64, 64, 3)`
,
`output_shape=(batch_size, 64, 64, 128)`
,
`activation='leakyrelu'`
,
`leaky_relu_alpha=0.2`
|
| 3. |
`MaxPooling2D`
|
`pool_size=(2, 2)`
,
`input_shape=(batch_size, 64, 64, 128)`
,
`output_shape=(batch_size, 32, 32, 128)`
|
| 3. |
2D 最大池化
|
`pool_size=(2, 2)`
,
`input_shape=(batch_size, 64, 64, 128)`
,
`output_shape=(batch_size, 32, 32, 128)`
|
| 4. | 2D 卷积层 |
`filters=256`
,
`kernel_size=(3, 3)`
,
`strides=(1, 1)`
,
`padding='valid'`
,
`input_shape=(batch_size, 32, 32, 128)`
,
`output_shape=(batch_size, 30, 30, 256)`
,
`activation='leakyrelu'`
,
`leaky_relu_alpha=0.2`
|
| 5. |
`MaxPooling2D`
|
`pool_size=(2, 2)`
,
`input_shape=(batch_size, 30, 30, 256)`
,
`output_shape=(batch_size, 15, 15, 256)`
|
| 5. |
2D 最大池化
|
`pool_size=(2, 2)`
,
`input_shape=(batch_size, 30, 30, 256)`
,
`output_shape=(batch_size, 15, 15, 256)`
|
| 6. | 2D 卷积层 |
`filters=512`
,
`kernel_size=(3, 3)`
,
`strides=(1, 1)`
,
`padding='valid'`
,
`input_shape=(batch_size, 15, 15, 256)`
,
`output_shape=(batch_size, 13, 13, 512)`
,
`activation='leakyrelu'`
,
`leaky_relu_alpha=0.2`
|
| 7. |
`MaxPooling2D`
|
`pool_size=(2, 2)`
,
`input_shape=(batch_size, 13, 13, 512)`
,
`output_shape=(batch_size, 6, 6, 512)`
|
| 7. |
2D 最大池化
|
`pool_size=(2, 2)`
,
`input_shape=(batch_size, 13, 13, 512)`
,
`output_shape=(batch_size, 6, 6, 512)`
|
| 8. | 展开层 |
`input_shape=(batch_size, 6, 6, 512)`
,
`output_shape=(batch_size, 18432)`
|
| 9. | 密集层 |
`neurons=1024`
,
`input_shape=(batch_size, 18432)`
,
`output_shape=(batch_size, 1024)`
,
`activation='leakyrelu'`
,
`'leakyrelu_alpha'=0.2`
|
| 10. | 密集层 |
`neurons=1`
,
`input_shape=(batch_size, 1024)`
,
`output_shape=(batch_size, 1)`
,
`activation='sigmoid'`
|
...
...
new/gan-proj/5.md
浏览文件 @
db3fcb52
...
...
@@ -63,11 +63,13 @@
*
**前残差块**
:前残差块包含单个 2D 卷积层和 relu 作为激活函数。 块的配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 卷积层 |
`Filters=64, kernel_size=3, strides=1, padding='same', activation='relu'`
|
`(64, 64, 3)`
|
`(64, 64, 64)`
|
*
**残差块**
:残差块包含两个 2D 卷积层。 两层之后是动量值等于 0.8 的批归一化层。 每个残差块的配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 卷积层 |
`Filters=64, kernel_size=3, strides=1, padding='same', activation='relu'`
|
`(64, 64, 64)`
|
`(64, 64, 64)`
|
| 批量归一化层 |
`Momentum=0.8`
|
`(64, 64, 64)`
|
`(64, 64, 64)`
|
| 2D 卷积层 |
`Filters=64, kernel_size=3, strides=1, padding='same'`
|
`(64, 64, 64)`
|
`(64, 64, 64)`
|
...
...
@@ -79,24 +81,28 @@
*
**后残差块**
:后残差块还包含单个 2D 卷积层和
`relu`
作为激活函数。 卷积层之后是批处理归一化层,其动量值为 0.8。 后残差块的配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 卷积层 |
`Filters=64, kernel_size=3, strides=1, padding='same'`
|
`(64, 64, 64)`
|
`(64, 64, 64)`
|
| 批量归一化层 |
`Momentum=0.8`
|
`(64, 64, 64)`
|
`(64, 64, 64)`
|
*
**上采样块**
:上采样块包含一个上采样层和一个 2D 卷积层,并使用 relu 作为激活函数。 生成器网络中有两个上采样模块。 第一个升采样模块的配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 上采样层 |
`Size=(2, 2)`
|
`(64, 64, 64)`
|
`(128, 128, 64)`
|
| 2D 卷积层 |
`Filters=256, kernel_size=3, strides=1, padding='same', activation='relu'`
|
`(128, 128, 256)`
|
`(128, 128, 256)`
|
第二个上采样模块的配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 上采样层 |
`Size=(2, 2)`
|
`(128, 128, 256)`
|
`(256, 256, 256)`
|
| 2D 卷积层 |
`Filters=256, kernel_size=3, strides=1, padding='same', activation='relu'`
|
`(256, 256, 256)`
|
`(256, 256, 256)`
|
*
**最后的卷积层**
:最后一层是使用 tanh 作为激活函数的 2D 卷积层。 它生成形状为
`(256, 256, 3)`
的图像。 最后一层的配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 卷积层 |
`Filters=3, kernel_size=9, strides=1, padding='same', activation='tanh'`
|
`(256, 256, 256)`
|
`(256, 256, 3)`
|
这些超参数最适合 Keras 框架。 如果使用任何其他框架,请相应地对其进行修改。
...
...
new/gan-proj/6.md
浏览文件 @
db3fcb52
...
...
@@ -48,6 +48,7 @@ StackGAN 是一个两阶段的网络。 每个阶段都有两个生成器和两
上图是不言自明的。 它代表了 StackGAN 网络的两个阶段。 如您所见,第一步是生成尺寸为
`64x64`
的图像。 然后,第二阶段拍摄这些低分辨率图像,并生成尺寸为
`256x256`
的高分辨率图像。 在接下来的几节中,我们将探讨 StackGAN 网络中的不同组件。 但是,在进行此操作之前,让我们熟悉本章中使用的符号:
|
**表示法**
|
**说明**
|
| --- | --- |
|
`t`
| 这是真实数据分发的文本描述。 |
|
`z`
| 这是来自高斯分布的随机采样噪声向量。 |
| !
[](
img/e32e6af2-66f3-4230-a504-a531da126b72.png
)
| 这是预训练编码器生成的给定文本描述的文本嵌入。 |
...
...
new/gan-proj/7.md
浏览文件 @
db3fcb52
...
...
@@ -94,6 +94,7 @@ CycleGAN 总体上由两种架构组成:生成器和判别器。 生成器架
*
**残差块**
:残差块包含两个 2D 卷积层。 两层之后是动量值等于 0.8 的批归一化层。 生成器网络包含六个残差块,其配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 卷积层 |
`filters=128, kernel_size=3, strides=1, padding='same'`
|
`(32, 32, 128)`
|
`(32, 32, 128)`
|
| 批量归一化层 |
`axis=3, momentum=0.9, epsilon=1e-5`
|
`(32, 32, 128)`
|
`(32, 32, 128)`
|
| 2D 卷积层 |
`filters=138, kernel_size=3, strides=1, padding='same'`
|
`(32, 32, 128)`
| (
`(32, 32, 128)`
|
...
...
@@ -105,6 +106,7 @@ CycleGAN 总体上由两种架构组成:生成器和判别器。 生成器架
*
**上采样块**
:上采样块包含 2D 转置卷积层,并使用
`relu`
作为激活函数。 生成器网络中有两个上采样模块。 第一个升采样模块的配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 转置卷积层 |
`filters=64, kernel_size=3, strides=2, padding='same', use_bias=False`
|
`(32, 32, 128)`
|
`(64, 64, 64)`
|
| 实例规范化层 |
`axis=1`
|
`(64, 64, 64)`
|
`(64, 64, 64)`
|
| 激活层 |
`activation='relu'`
|
`(64, 64, 64)`
|
`(64, 64, 64)`
|
...
...
@@ -112,6 +114,7 @@ CycleGAN 总体上由两种架构组成:生成器和判别器。 生成器架
第二个上采样模块的配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 转置卷积层 |
`filters=32, kernel_size=3, strides=2, padding='same', use_bias=False`
|
`(64, 64, 64)`
|
`(128, 128, 32)`
|
| 实例规范化层 |
`axis=1`
|
`(128, 128, 32)`
|
`(128, 128, 32)`
|
| 激活层 |
`activation='relu'`
|
`(128, 128, 32)`
|
`(128, 128, 32)`
|
...
...
@@ -119,6 +122,7 @@ CycleGAN 总体上由两种架构组成:生成器和判别器。 生成器架
*
**最后的卷积层**
:最后一层是使用
`tanh`
作为激活函数的 2D 卷积层。 它生成形状为
`(256, 256, 3)`
的图像。 最后一层的配置如下:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 2D 卷积层 |
`filters=3, kernel_size=7, strides=1, padding='same', activation='tanh'`
|
`(128, 128, 32)`
|
`(128, 128, 3)`
|
这些超参数最适合 Keras 框架。 如果使用任何其他框架,请进行相应的修改。
...
...
@@ -132,6 +136,7 @@ CycleGAN 总体上由两种架构组成:生成器和判别器。 生成器架
判别器网络的架构类似于 PatchGAN 网络中的判别器架构。 它是一个深度卷积神经网络,包含多个卷积块。 基本上,它会拍摄形状为
`(128, 128, 3)`
的图像,并预测该图像是真实的还是假的。 它包含几个 2D 零填充,
[
可以在以下链接中找到其文档
](
https://keras.io/layers/convolutional/#zeropadding2d
)
。 下表详细显示了判别器网络的架构:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 输入层 |
`none`
|
`(128, 128, 3)`
|
`(128, 128, 3)`
|
| 2D 零填充层 |
`padding(1, 1)`
|
`(128, 128, 3)`
|
`(130, 130, 3)`
|
| 2D 卷积层 |
`filters=64, kernel_size=4, strides=2, padding='valid'`
|
`(130, 130, 3)`
|
`(64, 64, 64)`
|
...
...
new/gan-proj/8.md
浏览文件 @
db3fcb52
...
...
@@ -167,6 +167,7 @@ Pix2pix 是条件 GAN 的变体。 我们已经在第 3 章,“使用条件 GA
pix2pix 中判别器网络的架构受到 PatchGAN 网络架构的启发。 PatchGAN 网络包含八个卷积块,如下所示:
|
**层名称**
|
**超参数**
|
**输入形状**
|
**输出形状**
|
| --- | --- | --- | --- |
| 第一个 2D 卷积层 |
`filter= 64, kernel_size = 4, stride= 2, padding ='same'`
|
`(256, 256, 1)`
|
`(256, 256, 64)`
|
| 激活层 |
`Activation ='leakyrelu', alpha = 0.2`
|
`(128, 128, 64)`
|
`(128, 128, 64)`
|
| 第二个 2D 卷积层 |
`filter= 128, kernel_size = 4, stride= 2, padding ="same"`
|
`(128, 128, 64)`
|
`(64, 64, 128)`
|
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录