Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
evanth_2023
pytorch-doc-zh
提交
dfb8189d
P
pytorch-doc-zh
项目概览
evanth_2023
/
pytorch-doc-zh
与 Fork 源项目一致
Fork自
OpenDocCN / pytorch-doc-zh
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pytorch-doc-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
dfb8189d
编写于
12月 22, 2020
作者:
B
Brother Pony
提交者:
GitHub
12月 22, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update 13.md
发电机 修改为 生成器
上级
244aed97
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
4 addition
and
4 deletion
+4
-4
docs/1.4/13.md
docs/1.4/13.md
+4
-4
未找到文件。
docs/1.4/13.md
浏览文件 @
dfb8189d
...
...
@@ -190,7 +190,7 @@ def weights_init(m):
```
###
发电机
###
生成器
生成器!
[](
img/bcbf81e7b0b04afeac884e8ae8b39b49.jpg
)
旨在将潜在空间矢量(!
[](
img/d132b400654f0a1c0bf2cf921b391c8a.jpg
)
)映射到数据空间。 由于我们的数据是图像,因此将!
[](
img/d132b400654f0a1c0bf2cf921b391c8a.jpg
)
转换为数据空间意味着最终创建与训练图像大小相同的 RGB 图像(即 3x64x64)。 在实践中,这是通过一系列跨步的二维卷积转置层来完成的,每个层都与 2d 批处理规范层和 relu 激活配对。 生成器的输出通过 tanh 函数进行馈送,以使其返回到!
[](
img/3a4258d8646a4d13394b3b76e8f40cd4.jpg
)
的输入数据范围。 值得注意的是,在卷积转置层之后存在批处理规范函数,因为这是 DCGAN 论文的关键贡献。 这些层有助于训练过程中的梯度流动。 DCGAN 纸生成的图像如下所示。
...
...
@@ -391,14 +391,14 @@ optimizerG = optim.Adam(netG.parameters(), lr=lr, betas=(beta1, 0.999))
回想一下,训练鉴别器的目的是最大程度地提高将给定输入正确分类为真实或伪造的可能性。 关于古德费罗,我们希望“通过提高随机梯度来更新鉴别器”。 实际上,我们要最大化!
[](
img/e977e22f15c638b1eb38173f0ac10253.jpg
)
。 由于 ganhacks 提出了单独的小批量建议,因此我们将分两步进行计算。 首先,我们将从训练集中构造一批真实样本,向前通过!
[](
img/683792a4ccec414f11d2a19bc4258015.jpg
)
,计算损失(!
[](
img/288340ac495ebb94532e377405b41729.jpg
)
),然后在向后通过中计算梯度。 其次,我们将使用电流发生器构造一批假样本,将这批样本通过!
[](
img/683792a4ccec414f11d2a19bc4258015.jpg
)
正向传递,计算损失(!
[](
img/10648c8a69de50dc6c5b758a316f669e.jpg
)
),然后_向后传递累积_梯度。 现在,利用从所有真实批次和所有伪批次累积的渐变,我们将其称为“鉴别器”优化器的一个步骤。
**第 2 部分-训练
发电机
**
**第 2 部分-训练
生成器
**
如原始论文所述,我们希望通过最小化!
[](
img/10648c8a69de50dc6c5b758a316f669e.jpg
)
来训练 Generator,以产生更好的假货。 如前所述,Goodfellow 指出这不能提供足够的梯度,尤其是在学习过程的早期。 作为解决方法,我们改为希望最大化!
[](
img/940444bcfffe781f4d3318e458328842.jpg
)
。 在代码中,我们通过以下步骤来实现此目的:将第 1 部分的 Generator 输出与 Discriminator 进行分类,使用实数标签 GT 计算 G 的损耗_,反向计算 G 的梯度,最后使用优化器更新 G 的参数 步。 将真实标签用作损失函数的 GT 标签似乎违反直觉,但这使我们可以使用 BCELoss 的!
[](
img/2632ebd23b7ece7c8b70b4801fdcc6cd.jpg
)
部分(而不是!
[](
img/d0a7cba3395a4033bcc9c486b5097166.jpg
)
部分),这正是我们想要的。_
最后,我们将进行一些统计报告,并在每个时期结束时,将我们的 fixed_noise 批次推入生成器,以直观地跟踪 G 的训练进度。 报告的训练统计数据是:
*
**Loss_D**
-鉴别器损失,计算为所有真实批次和所有假批次的损失总和(!
[](
img/b8844187a0c07427a987bb6524d6ddcf.jpg
)
)。
*
**Loss_G**
-
发电机
损耗计算为!
[](
img/940444bcfffe781f4d3318e458328842.jpg
)
*
**Loss_G**
-
生成器
损耗计算为!
[](
img/940444bcfffe781f4d3318e458328842.jpg
)
*
**D(x)**
-所有真实批次的鉴别器的平均输出(整个批次)。 这应该从接近 1 开始,然后在 G 变得更好时理论上收敛到 0.5。 想想这是为什么。
*
**D(G(z))**
-所有假批次的平均鉴别器输出。 第一个数字在 D 更新之前,第二个数字在 D 更新之后。 这些数字应从 0 开始,并随着 G 的提高收敛到 0.5。 想想这是为什么。
...
...
@@ -734,4 +734,4 @@ plt.show()
[
`Download Python source code: dcgan_faces_tutorial.py`
](
../_downloads/dc0e6f475c6735eb8d233374f8f462eb/dcgan_faces_tutorial.py
)
[
`Download Jupyter notebook: dcgan_faces_tutorial.ipynb`
]
(../_downloads/e9c8374ecc202120dc94db26bf08a00f/dcgan_faces_tutorial.ipynb)
[
由狮身人面像画廊
](
https://sphinx-gallery.readthedocs.io
)
生成的画廊
\ No newline at end of file
[
由狮身人面像画廊
](
https://sphinx-gallery.readthedocs.io
)
生成的画廊
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录