其实深度学习笔记:卷积神经网络关键概念详解的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享深度学习笔记:卷积神经网络关键概念详解的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
计算机视觉卷积值,修改卷积核的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实践》
关于深度学习笔记:卷积神经网络关键概念详解和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
【深度学习笔记:卷积神经网络关键概念详解】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于找到一篇讲卷积相关的学习笔记啦!
有6位网友表示赞同!
卷积、跨度、边界填充,这些概念一直让我觉得有点懵,希望能通过这篇笔记好好理解一下。
有20位网友表示赞同!
感觉TF013应该是这个系列的入门教程吧!
有16位网友表示赞同!
卷积核这个东西还真是挺重要的,好多深度学习模型都需要用到它。
有14位网友表示赞同!
希望这篇文章能说得通俗易懂一点,我可不想被一堆公式吓跑!
有19位网友表示赞同!
以前只知道卷积的作用,不知道原理是什么样子,这篇文章正好能够打消我的疑问。
有7位网友表示赞同!
学习深度学习需要很多基础理论知识,这篇笔记看起来很有帮助。
有9位网友表示赞同!
看了标题感觉很专业,是不是高手写的呢?
有16位网友表示赞同!
我最近在研究卷积神经网络,刚好要用到这些知识,趁机跟着学习一下。
有20位网友表示赞同!
这种细致的文章特别有价值,能帮助我们一步步掌握深度学习的技巧。
有7位网友表示赞同!
期待这篇文章能带给我们很多深刻的理解!
有15位网友表示赞同!
最近很想去了解卷积网络的细节,这篇笔记看起来就是我想要的答案。
有11位网友表示赞同!
分享一下自己也遇到过的困扰,不知道卷积怎么应用到实际问题中,希望能在这篇文章里找到答案。
有17位网友表示赞同!
学习笔记总是最可靠的了,希望这篇文章能让我真正领悟到这些概念的含义。
有16位网友表示赞同!
这个标题很有意思,感觉可以学到很多新知识!
有9位网友表示赞同!
终于有机会好好来学习一下卷积方面的知识了!
有5位网友表示赞同!
希望能找到更多这样的学习笔记,帮助我更好地理解深度学习。
有18位网友表示赞同!
学习新的东西总是很让人兴奋,希望这篇文章能让我对卷积、跨度、边界填充等概念有更深的认识。
有11位网友表示赞同!
喜欢这种系统性的学习方式,可以让我们把知识串联起来,更加深入地掌握。
有5位网友表示赞同!