相关文章推荐
重情义的米饭  ·  magento -- ...·  2 年前    · 
犯傻的水龙头  ·  ASP.NET ...·  2 年前    · 

from keras.layers import Conv2D
model = Sequential()
model.add(Conv2D(filters=16, kernel_size=2, strides=2, padding='valid',
activation='relu', input_shape=(200, 200, 1)))
model.summary() 我们不会训练该 CNN;相反,我们将使用该可执行文件根据所提供的参数研究卷积层的维度如何变化。

运行 python path/to/conv-dims.py 并查看输出。应该如下所示:

注意:K = filters,F = kernel_size。类似地,D_in 是 input_shape 元组中的最后一个值。

因为每个过滤器有 F*F*D_in 个权重,卷积层由 K 个过滤器组成,因此卷积层中的权重总数是 K*F*F*D_in。因为每个过滤器有 1 个偏差项,卷积层有 K 个偏差。因此,卷积层中的 参数数量 是 K*F*F*D_in + K。

公式:卷积层的形状

卷积层的形状取决于 kernel_size、input_shape、padding 和 stride 的值。我们定义几个变量:

K - 卷积层中的过滤器数量 F - 卷积过滤器的高度和宽度 H_in - 上一层级的高度 W_in - 上一层级的宽度 注意:K = filters、F = kernel_size,以及S = stride。类似地,H_in 和 W_in 分别是 input_shape 元组的第一个和第二个值。

深度 始终为过滤器数量 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)) 行万里路,读万卷书,阅无数人。 吃货一枚,爱吃湘菜,粤菜与杭帮菜,尝遍天下美食。 摄影爱好者,游遍名川大山,江河胡海,赏遍人间春色。 爱看电影,尤其是国产大片,好莱坞大片。英文名:Dickson Jin, 网名:风一样的BOY。精通SAP供应链咨询。2017年开始研习人工智能。

注册时间: 2014-08-27

4317658

广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员