Intro
这是Kaggle深度学习教育课程的第一课。
在本课程结束后,您将了解卷积。 卷积是计算机视觉(以及许多其他应用程序)中深度学习模型的基本构建块。
之后,我们将很快开始使用世界一流的深度学习模型。
Lesson
[1]
from IPython.display import YouTubeVideo
YouTubeVideo('OVbiVIChkVY', width=800, height=450)
Your Turn
看完视频后,进行一些关于卷积的动手实践。
Exercise:Convolutions for Computer Vision
Exercise Introductin
为了构建和测试你对卷积的直觉,你将设计一个垂直线检测器。 我们将它应用于图像的每个部分,以创建一个新的张量,显示有垂直线的位置。
执行以下4步:
- 复制这篇笔记;
- 运行完此笔记并向下滚动以查看输出,您将看到原始图像,以及我们将水平线检测器应用于图像时获得的图像示例。
- 填写vertical_line_conv的代码单元格。 您将不得不考虑列表中的哪些数字将创建垂直线检测器。 运行此单元格。
- 将vertical_line_conv添加到conv_list。 运行该单元格。 您将在水平线过滤器下方看到垂直线过滤器的输出。 您还将看到一个打印提示,表明您是否正确。
一旦完成,您就可以了解深度卷积模型,这是现代计算机视觉突破的关键。
Import Utility Functions
我们将使用一些小的实用程序函数来加载原始图像数据,使结果可视化并给出你的回答等提示。不要担心这些,但执行下一个单元格来加载实用程序函数。
【1】
from learntools.deep_learning.exercise_1 import load_my_image, apply_conv_to_image, show, print_hints
Example Convolution:Horizontal Line Detector
这里有一个你在视频里看到的卷积例子,你不需要去修改它。
【2】
# Detects bright pixels over dark pixels.
horizontal_line_conv = [[1, 1],
[-1, -1]]
Your Turn:Vertical Line Detector
用数字替换问号标记以形成垂直线检测器,并取消注释下面单元格中的两行代码。
【3】
#vertical_line_conv = [[?, -?],
# [?, ?]]
一旦你在代码单元创建了vertical_line_conv,把它作为一个附加单元加到conv_list,然后执行以下代码单元:
【4】
conv_list = [horizontal_line_conv]
original_image = load_my_image()
print("Original image")
show(original_image)
for conv in conv_list:
filtered_image = apply_conv_to_image(conv, original_image)
print("Output: ")
show(filtered_image)
Original image
----------------------------
Filter:
[[ 1 1]
[-1 -1]]
Output:
在上方,您将看到水平线过滤器的输出以及您添加的过滤器。 如果你做对了,过滤器的输出将如下所示。
Keep Going
现在,您已准备好将卷积结合到强大的模型中。 这些模型很有趣,所以继续前进。