卷积层
创建卷积层
首先导入keras中的模块
from keras.layers import Conv2D
卷积层的格式及参数:
Conv2D(filters, kernel_size, strides, padding, activation='relu', input_shape)
filters: 过滤器数量
kernel_size:指定卷积窗口的高和宽的数字
strides: 卷积stride,如果不指定任何值,则strides设为1
padding: 选项包括'valid'和'same',默认值为'valid'
activation: 通常为'relu',如果不指定任何值,则不应用任何激活函数,通常应该向网络中每个卷积层添加一个Relu激活函数
如果卷积层出现在输入层之后,必须提供另一个input_shape参数:
input_shape: 指定输入的高度、宽度和深度的元组;如果卷积层不是网络的第一个层级,则不应该包含input_shape参数。
示例1:
假设我要构建一个 CNN,输入层接受的是 200 x 200 像素(对应于高 200、宽 200、深 1 的三维数组)的灰度图片。然后,假设我希望下一层级是卷积层,具有 16 个过滤器,每个宽和高分别为 2。在进行卷积操作时,我希望过滤器每次跳转 2 个像素。并且,我不希望过滤器超出图片界限之外;也就是说,我不想用 0 填充图片。
要构建该卷积层,我将使用下面的代码
Conv2D(filters=16, kernel_size=2, strides=2, activation='relu', input_shape=(200, 200, 1))
示例 2
假设我希望 CNN 的下一层级是卷积层,并将示例 1 中构建的层级作为输入。假设新层级是 32 个过滤器,每个的宽和高都是 3。在进行卷积操作时,我希望过滤器每次移动 1 个像素。我希望卷积层查看上一层级的所有区域,因此不介意过滤器在进行卷积操作时是否超过上一层级的边缘。
然后,要构建此层级,我将使用以下代码:
Conv2D(filters=32, kernel_size=3, padding='same', activation='relu')
卷积层中的参数数量
卷积层中的参数数量取决于filters, kernel_size, input_shape的值
K: 卷积层中的过滤器数量, K=filters
F:卷积过滤器的高度和宽度, F = kernal_size
D_in: 上一层级的深度, D_in是input_shape元组中的最后一个值
卷积层中的参数数量计算公式为:K * F * F * D_in + K
卷积层的形状
卷积层的形状取决于kernal_size, input_shape, padding, stride的值
K: 卷积层中的过滤器数量,K = filters
F: 卷积过滤器的高度和宽度, F = kernal_size
H_in: 上一层级的高度
W_in: 上一层级的宽度
S: stride
卷积层的深度始终为过滤器数量K
如果padding=‘same', 那么卷积层的空间维度计算公式如下:
height = ceil(float(H_in) / float(S))
width = ceil(float(W_in) / float(S))
如果padding = ‘valid', 那么卷积层的空间维度计算公式如下:
height = ceil(float(H_in - F + 1) / float(S))
width = ceil(float(W_in - F + 1) / float(S))
可以使用如下形式检测卷积层的维度:
from keras.models import Sequential from keras.layers import Conv2D model = Sequential() model.add(Conv2D(filters=32, kernel_size=3, strides=2, padding='same', activation='relu', input_shape=(128, 128, 3))) model.summary()
池化层
keras中的最大池化层
创建池化层,首先导入keras中的模块
from keras.layers import MaxPooling2D
然后用以下形式创建池化层
MaxPooling2D(pool_size, strides, padding)
参数
pool_size:指定池化窗口高度和宽度的数字
strides:垂直和水平stride,默认参数为pool_size
padding:选项包括'valid'和'same',默认参数为'valid'
示例:
假设我要构建一个 CNN,并且我想通过在卷积层后面添加最大池化层,降低卷积层的维度。假设卷积层的大小是 (100, 100, 15),我希望最大池化层的大小为 (50, 50, 15)。
要实现这一点,我可以在最大池化层中使用 2x2 窗口,stride 设为 2,代码如下:
MaxPooling2D(pool_size=2, strides=2)
如果你想将 stride 设为 1,但是窗口大小依然保留为 2x2,则使用以下代码:
MaxPooling2D(pool_size=2, strides=1)
可以使用如下形式检测最大池化层的维度:
from keras.models import Sequential from keras.layers import MaxPooling2D model = Sequential() model.add(MaxPooling2D(pool_size=2, strides=2, input_shape=(100, 100, 15))) model.summary()
以上这篇keras中的卷积层&池化层的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
keras,卷积层,池化层
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- PatriciaPaay-Playmate(ExpandedEditionRemastered2024)[24Bit-96kHz]FLAC
- 蒋志光韦绮姗.2014-传奇巨声【环星】【WAV+CUE】
- 关淑怡.2008-演唱会+无尽经典3CD【环球】【WAV+CUE】
- 伍佰.2002-冬之火九重天演唱会特选录音专辑2CD【滚石】【WAV+CUE】
- 李宗盛1996《李宗盛的凡人歌2CD》滚石[WAV+CUE][1G]
- 刘德华 《天意》1:1直刻黑胶LPCD[WAV+CUE][1.1G]
- 刘德丽2024《赤的疑惑HQCD》头版限量编号MQA[低速原抓WAV+CUE]
- 英雄联盟万圣节有什么皮肤返场 2024万圣节皮肤返场一览
- lol万圣节赠礼活动什么时候开始 2024万圣节活动时间介绍
- 2024全球总决赛blg是全华班吗 全球总决赛blg选手所属国家介绍
- 《LOL》S14半决赛:T1战胜GEN晋级决赛!对决BLG
- 《完蛋美女前传》白白演员抱怨:都没人玩我的线
- 玩家热议OLED屏对画面提升巨大:比PS5 Pro值得买
- PatriciaPaay-TheLadyIsAChamp(ExpandedEdition)(2024)[24Bit-96kHz]FLAC
- 尚士达.2024-莫回头【智慧小狗】【DTS-WAV分轨】