欢迎来真孝善网,为您提供真孝善正能量书籍故事!

深度学习笔记:卷积神经网络关键概念详解

时间:11-16 民间故事 提交错误

其实深度学习笔记:卷积神经网络关键概念详解的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享深度学习笔记:卷积神经网络关键概念详解的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

计算机视觉卷积值,修改卷积核的strides(跨度)参数来实现输入的降维。 strides 参数防止卷积核遍历每个输入元素并跳过一些图像像素。内核在input_batch 中滑动并跨越一些元素。每一次移动都以input_batch 的一个元素为中心。将位置重叠值相乘,并将乘积相加,得到卷积结果。逐点相乘以整合两个输入。设置跨度以调整输入张量维度。降维减少了计算量并避免了重叠的感受野。 strides 参数格式与输入向量相同(image_batch_size_stride、image_height_stride、image_width_stride、image_channels_stride)。

边界填充,卷积核与图像尺寸不匹配,填充图像缺失区域。 TensorFlow 用0 填充它。 padding 参数控制conv2d 零填充的数量或错误状态。 SAME:卷积输出输入大小相同,不考虑滤波器大小,缺失像素用0填充,卷积核扫描的像素数大于图像实际像素数。 VALID: 考虑滤波器尺寸。尽量不要跨越图像边界,否则边界可能会被填满。

data_format 修改数据格式。 NHWC指定输入输出数据格式,[batch_size(批量数据张量数量)、in_height(批量数据张量高度)、in_width(批量数据张量宽度)、in_channels(批量数据张量通道)]。 NCHW 指定输入和输出数据格式,[batch_size, in_channels, in_height, in_width]。

TensorFlow过滤器参数指定输入卷积操作的卷积核。过滤器使用特定的模式来突出显示图像中感兴趣的特征。图像与边缘检测卷积核的卷积输出就是所有检测到的边缘区域。 tf.minimum和tf.nn.relu将卷积值保持在RGB颜色值的合法范围内[0,255]。卷积核的初始值是随机设置的,该值在训练迭代过程中由CNN学习层自动调整。经过一轮训练迭代后,接收图像并与卷积核进行卷积。如果预测结果与图像的真实标签一致,则调整卷积核。

导入张量流astf

input_batch=tf.constant([

[#1st 输入

[[0.0],[1.0]],

[[2.0],[3.0]]

],

[#第二个输入

[[2.0],[4.0]],

[[6.0],[8.0]]

]

])

打印输入批次

内核=tf.constant([

[

[[1.0,2.0]]

]

])

打印内核

conv2d=tf.nn.conv2d(input_batch, kernel, strides=[1, 1, 1, 1], padding="SAME")#conv2d卷积运算

打印2d 转换

sess=tf.Session()

打印sess.run(conv2d)

lower_right_image_pixel=sess.run(input_batch)[0][1][1]

lower_right_kernel_pixel=sess.run(conv2d)[0][1][1]

打印右下图像像素、右下内核像素

input_batch2=tf.constant([

[#第一个输入(6x6x1)

[[0.0],[1.0],[2.0],[3.0],[4.0],[5.0]],

[[0.1],[1.1],[2.1],[3.1],[4.1],[5.1]],

[[0.2],[1.2],[2.2],[3.2],[4.2],[5.2]],

[[0.3],[1.3],[2.3],[3.3],[4.3],[5.3]],

[[0.4],[1.4],[2.4],[3.4],[4.4],[5.4]],

[[0.5],[1.5],[2.5],[3.5],[4.5],[5.5]]

]

])

打印输入_batch2

kernel2=tf.constant([#卷积核(3x3x1)

[[[0.0]]、[[0.5]]、[[0.0]]]、

[[[0.0]]、[[1.0]]、[[0.0]]]、

[[[0.0]]、[[0.5]]、[[0.0]]]

])

打印内核2

conv2d2=tf.nn.conv2d(input_batch2, kernel2, strides=[1, 3, 3, 1], padding="SAME")

打印conv2d2

打印sess.run(conv2d2)

lower_right_image_pixel2=sess.run(input_batch2)[0][1][1]

lower_right_kernel_pixel2=sess.run(conv2d2)[0][1][1]

打印lower_right_image_pixel2、lower_right_kernel_pixel2

input_batch3=tf.constant([

[#第一个输入(6x6x1)

[[0.0,1.0,2.0],[1.0,2.0,3.0]],

[[0.1,1.1,2.1],[1.1,2.1,3.1]],

[[0.2,1.2,2.2],[1.2,2.2,3.2]],

[[0.3,1.3,2.3],[1.3,2.3,3.3]],

[[0.4,1.4,2.4],[1.4,2.4,3.4]],

[[0.5,1.5,2.5],[1.5,2.5,3.5]]

]

])

打印input_batch3

kernel3=tf.constant([

[

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]],

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]],

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]]

],

[

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]],

[[8. 0. 0.],[0. 8. 0.],[0. 0. 8.]],

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]]

],

[

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]],

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]],

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]]

]

])

打印内核3

conv2d3=tf.nn.conv2d(input_batch3, kernel3, strides=[1, 1, 1, 1], padding="SAME")

打印转换2d3

activation_map3=sess.run(tf.minimum(tf.nn.relu(conv2d3), 255))

打印activation_map3

lower_right_image_pixel3=sess.run(input_batch3)[0][1][1]

lower_right_kernel_pixel3=sess.run(conv2d3)[0][1][1]

打印lower_right_image_pixel3、lower_right_kernel_pixel3

kernel4=tf.constant([

[

[[0. 0. 0.],[0. 0. 0.],[0. 0. 0.]],

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]],

[[0. 0. 0.],[0. 0. 0.],[0. 0. 0.]]

],

[

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]],

[[5. 0. 0.],[0. 5. 0.],[0. 0. 5.]],

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]]

],

[

[[0. 0. 0.],[0. 0. 0.],[0. 0. 0.]],

[[-1. 0. 0.],[0. -1. 0.],[0. 0. -1.]],

[[0. 0. 0.],[0. 0. 0.],[0. 0. 0.]]

]

])

打印内核4

conv2d4=tf.nn.conv2d(input_batch3, kernel4, strides=[1, 1, 1, 1], padding="SAME")

打印conv2d4

activation_map4=sess.run(tf.minimum(tf.nn.relu(conv2d4), 255))

打印activation_map4

lower_right_image_pixel4=sess.run(input_batch3)[0][1][1]

lower_right_kernel_pixel4=sess.run(conv2d4)[0][1][1]

打印lower_right_image_pixel4, lower_right_kernel_pixel4 参考:

《面向机器智能的TensorFlow实践》

关于深度学习笔记:卷积神经网络关键概念详解和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

用户评论

陌上蔷薇

终于找到一篇讲卷积相关的学习笔记啦!

    有6位网友表示赞同!

志平

卷积、跨度、边界填充,这些概念一直让我觉得有点懵,希望能通过这篇笔记好好理解一下。

    有20位网友表示赞同!

逾期不候

感觉TF013应该是这个系列的入门教程吧!

    有16位网友表示赞同!

七级床震

卷积核这个东西还真是挺重要的,好多深度学习模型都需要用到它。

    有14位网友表示赞同!

柠栀

希望这篇文章能说得通俗易懂一点,我可不想被一堆公式吓跑!

    有19位网友表示赞同!

万象皆为过客

以前只知道卷积的作用,不知道原理是什么样子,这篇文章正好能够打消我的疑问。

    有7位网友表示赞同!

泡泡龙

学习深度学习需要很多基础理论知识,这篇笔记看起来很有帮助。

    有9位网友表示赞同!

┲﹊怅惘。

看了标题感觉很专业,是不是高手写的呢?

    有16位网友表示赞同!

﹎℡默默的爱

我最近在研究卷积神经网络,刚好要用到这些知识,趁机跟着学习一下。

    有20位网友表示赞同!

煮酒

这种细致的文章特别有价值,能帮助我们一步步掌握深度学习的技巧。

    有7位网友表示赞同!

烬陌袅

期待这篇文章能带给我们很多深刻的理解!

    有15位网友表示赞同!

别留遗憾

最近很想去了解卷积网络的细节,这篇笔记看起来就是我想要的答案。

    有11位网友表示赞同!

凉城°

分享一下自己也遇到过的困扰,不知道卷积怎么应用到实际问题中,希望能在这篇文章里找到答案。

    有17位网友表示赞同!

大王派我来巡山!

学习笔记总是最可靠的了,希望这篇文章能让我真正领悟到这些概念的含义。

    有16位网友表示赞同!

涐们的幸福像流星丶

这个标题很有意思,感觉可以学到很多新知识!

    有9位网友表示赞同!

红尘滚滚

终于有机会好好来学习一下卷积方面的知识了!

    有5位网友表示赞同!

单身i

希望能找到更多这样的学习笔记,帮助我更好地理解深度学习。

    有18位网友表示赞同!

没过试用期的爱~

学习新的东西总是很让人兴奋,希望这篇文章能让我对卷积、跨度、边界填充等概念有更深的认识。

    有11位网友表示赞同!

此生一诺

喜欢这种系统性的学习方式,可以让我们把知识串联起来,更加深入地掌握。

    有5位网友表示赞同!

【深度学习笔记:卷积神经网络关键概念详解】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活