尽管本章的重点是深度神经网络; 在本章中,我们将讨论 Keras 的重要功能,称为**函数式 API**。 该 API 充当在`tf.keras`中构建网络的替代方法,使我们能够构建更复杂的网络,而这是顺序模型 API 无法实现的。 我们之所以专注于此 API 的原因是,它将成为构建诸如本章重点介绍的两个之类的深度网络的非常有用的工具。 建议您先完成“第 1 章”,“Keras 的高级深度学习介绍”,然后再继续本章,因为我们将本章介绍的入门级代码和概念称为 在本章中,我们将它们带入了更高的层次。
尽管本章的重点是深度神经网络; 在本章中,我们将讨论 Keras 的重要功能,称为**函数式 API**。 该 API 充当在`tf.keras`中构建网络的替代方法,使我们能够构建更复杂的网络,而这是顺序模型 API 无法实现的。 我们之所以专注于此 API 的原因是,它将成为构建诸如本章重点介绍的两个之类的深度网络的非常有用的工具。 建议您先完成“第 1 章”,“Keras 的高级深度学习介绍”,然后再继续本章,因为我们将参考在本章中探讨的入门级代码和概念,我们将它们带入了更高的层次。
循环一致性检查表明,尽管我们已将源数据`x`转换为域`y`,但`x`的原始特征仍应保留在`y`中并且可恢复。 网络`F`只是我们将从反向循环 GAN 借用的另一个生成器,如下所述。
CycleGAN 是对称的。 如图“图 7.1.7”所示,后向循环 GAN 与前向循环 GAN 相同,但具有源数据`x`和目标数据`y`的作用 逆转。 现在,源数据为`y`,目标数据为`x`。 生成器`G`和`F`的作用也相反。`F`现在是生成器,而`G`恢复输入。 在正向循环 GAN 中,生成器`F`是用于恢复源数据的网络,而`G`是生成器。
CycleGAN 是对称的。 如图“图 7.1.7”所示,后向循环 GAN 与前向循环 GAN 相同,但将源数据`x`和目标数据`y`的作用逆转。 现在,源数据为`y`,目标数据为`x`。 生成器`G`和`F`的作用也相反。`F`现在是生成器,而`G`恢复输入。 在正向循环 GAN 中,生成器`F`是用于恢复源数据的网络,而`G`是生成器。
例如,如图“图 11.2.1”所示,将普通图像尺寸`640 x 480`分为`2 x 1`个区域,从而产生两个锚框。 与`2 x 2`的大小不同,`2 x 1`的划分创建了近似方形的锚框。 在第一个锚点框中,新的偏移量是`(x_min, y_min)`和![](img/B14853_11_001.png),它们比 没有锚框的像素误差值。 第二个锚框的偏移量也较小。
例如,如图“图 11.2.1”所示,将普通图像尺寸`640 x 480`分为`2 x 1`个区域,从而产生两个锚框。 与`2 x 2`的大小不同,`2 x 1`的划分创建了近似方形的锚框。 在第一个锚点框中,新的偏移量是`(x_min, y_min)`和![](img/B14853_11_001.png),它们比没有锚框的像素误差值更小。 第二个锚框的偏移量也较小。
在“图 11.2.2”中,图像被进一步分割。 这次,锚框为`3 x 2`。第二个锚框偏移为![](img/B14853_11_002.png)和![](img/B14853_11_003.png),这是迄今为止最小的。 但是,如果将图像进一步分为`5 x 4`,则偏移量开始再次增加。 主要思想是,在创建各种尺寸的区域的过程中,将出现最接近地面真值边界框的最佳锚框大小。 使用多尺度锚框有效地检测不同大小的对象将巩固**多尺度对象检测**算法的概念。