详解Keras3.0 Layers API: Core layers

1、Input

keras.Input(
    shape=None,
    batch_size=None,
    dtype=None,
    sparse=None,
    batch_shape=None,
    name=None,
    tensor=None,
)
参数说明
  • shape: 输入张量的形状。如果为None,则可以动态地指定形状。
  • batch_size: 批处理大小。如果为None,则可以动态地指定批处理大小。
  • dtype: 输入张量的数据类型。如果为None,则使用默认的数据类型。
  • sparse: 是否将输入视为稀疏张量。如果为True,则输入将被转换为稀疏张量。
  • batch_shape: 批处理形状。如果为None,则可以动态地指定批处理形状。
  • name: 输入层的名称。如果为None,则自动生成一个名称。
  • tensor: 直接传递一个已经存在的张量作为输入。
示例
#输入张量的形状为(32,),表示它包含32个特征
x = Input(shape=(32,))

#定义一个全连接层(Dense),全连接层的神经元数量为16
#activation='softmax'表示在输出层使用softmax激活函数,通常用于多分类问题
y = Dense(16, activation='softmax')(x)

#Model函数用于将输入层和输出层组合成一个神经网络模型
model = Model(x, y)

 

2、Dense layer

keras.layers.Dense(
    units,
    activation=None,
    use_bias=True,
    kernel_initializer="glorot_uniform",
    bias_initializer="zeros",
    kernel_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    kernel_constraint=None,
    bias_constraint=None,
    **kwargs
)
参数说明 
  • units: 输出空间的维度,即神经元的数量。
  • activation: 激活函数,用于在输出上应用非线性变换。默认为None,表示不使用激活函数。
  • use_bias: 布尔值,表示是否在输出中添加偏置项。默认为True,表示添加偏置项。
  • kernel_initializer: 权重矩阵的初始化方法。默认为"glorot_uniform",表示使用Glorot均匀分布进行初始化。
  • bias_initializer: 偏置向量的初始化方法。默认为"zeros",表示使用零进行初始化。
  • kernel_regularizer: 权重矩阵的正则化方法。默认为None,表示不使用正则化。
  • bias_regularizer: 偏置向量的正则化方法。默认为None,表示不使用正则化。
  • activity_regularizer: 输出的正则化方法。默认为None,表示不使用正则化。
  • kernel_constraint: 权重矩阵的约束方法。默认为None,表示不使用约束。
  • bias_constraint: 偏置向量的约束方法。默认为None,表示不使用约束。
  • **kwargs: 其他关键字参数,可以传递给其他函数或方法。
示例
# 创建一个简单的神经网络模型
model = Sequential()

# 添加一个全连接层,输入维度为10,输出维度为5
model.add(Dense(units=5, input_dim=10, activation='relu'))

# 编译模型,设置损失函数、优化器和评估指标
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])

# 打印模型结构
model.summary()

 

3、Embedding layer 

keras.layers.Embedding(
    input_dim,
    output_dim,
    embeddings_initializer="uniform",
    embeddings_regularizer=None,
    embeddings_constraint=None,
    mask_zero=False,
    **kwargs
)
参数说明
  • input_dim:整数。词汇表的大小,即最大整数索引+1
  • output_dim:整数。密集嵌入的尺寸
  • embeddings_initifier:embeddings矩阵的初始化器
  • embeddings_regularizer:应用于嵌入矩阵的正则化函数
  • embeddings_constraint:应用于嵌入矩阵的约束函数
  • mask_zero:布尔值,无论输入值0是否为应屏蔽的特殊“填充”值。当使用可能采用可变长度输入的递归层时,这是有用的。如果为True,则模型中的所有后续层都需要支持遮罩,否则将引发异常。因此,如果mask_zero设置为True,则索引0不能在词汇表中使用(input_dim应等于词汇表+1的大小)
示例
#创建一个Sequential模型model
model = keras.Sequential()

#向模型中添加了一个Embedding层。Embedding层用于将整数编码转换为固定大小的向量
#在这个例子中,词汇表的大小为1000,每个输入序列的长度为10,所以输出的向量维度为64
model.add(keras.layers.Embedding(1000, 64, input_length=10))

#生成一个随机整数矩阵作为模型的输入。
#这个矩阵的形状为(32, 10),表示有32个样本,每个样本的长度为10
input_array = np.random.randint(1000, size=(32, 10))

#编译模型,指定了优化器为RMSProp,损失函数为均方误差(MSE)
model.compile('rmsprop', 'mse')

#使用模型对输入数据进行预测
output_array = model.predict(input_array)

#输出数组的形状,即(32, 10, 64)
print(output_array)

你可能感兴趣的:(人工智能,机器学习,keras)