tf.keras.layers.Conv2D 示例

import tensorflow as tf
input_shape = (4, 28, 28, 3) # 样本数:4,图片大小:28 * 28,通道:3
inputs = tf.random.normal(input_shape)
inputs.shape
TensorShape([4, 28, 28, 3])
output = tf.keras.layers.Conv2D(  
    2,  # 输出维度的最后一维
    3,  # 整数,过滤器的大小,如果为一个整数则宽和高相同,这里卷积核 3 X 3
    activation='relu',  # 激活函数
#     strides=(1, 1),  # 步长,默认为 (1,1)
#     dalition_rate = (1,1),# 卷积核的膨胀系数  膨胀后的卷积核尺寸 = 卷积核的膨胀系数 * (原卷积核的尺寸 -1) + 1
    input_shape=input_shape[1:]  # 输入维度  
)(inputs)
print(output.shape)  # output.shape = (inputs.shape - 卷积核) / 步长 + 1
(4, 26, 26, 2)
output = tf.keras.layers.Conv2D(
    2,  # 输出维度的最后一维
    3,  # 整数,过滤器的大小,如果为一个整数则宽和高相同,这里卷积核 3 X 3
    activation='relu',  # 激活函数
    dilation_rate=2,  # 卷积核的膨胀系数  膨胀后的卷积核尺寸 = 卷积核的膨胀系数 * (原卷积核的尺寸 -1) + 1
    input_shape=input_shape[1:]  # 输入维度  
)(inputs)
print(output.shape)  # output.shape = (inputs.shape - 卷积核) / 步长 + 1
(4, 24, 24, 2)
output = tf.keras.layers.Conv2D(
    2,  # 输出维度的最后一维
    3,  # 整数,过滤器的大小,如果为一个整数则宽和高相同,这里卷积核 3 X 3
    activation='relu',  # 激活函数
    padding="same",  # 表示边缘用0填充,padding =“same”,output.shape = input_shape/步长 ,向上取整
    input_shape=input_shape[1:]  # 输入维度  
)(inputs)
print(output.shape)  # padding =“same”, output.shape = input_shape/步长 ,向上取整
(4, 28, 28, 2)
# 批形状为 [4, 7]:
input_shape = (4, 7, 28, 28, 3) # 输入 批 变化
inputs = tf.random.normal(input_shape)
output = tf.keras.layers.Conv2D(
2, 3, activation='relu', input_shape=input_shape[2:])(inputs)
print(output.shape)
(4, 7, 26, 26, 2)

猜你喜欢

转载自blog.csdn.net/weixin_44493841/article/details/121422504