📜  ML – 深度学习层列表(1)

📅  最后修改于: 2023-12-03 15:17:40.074000             🧑  作者: Mango

ML – 深度学习层列表

深度学习层是机器学习中的一个重要概念。其通过连接多个神经元,形成一个多层的网络结构来实现对输入数据的学习。通过选择不同的层,可以实现不同的功能,例如图像识别、语音识别、自然语言处理等等。以下是常见的深度学习层列表:

1. 全连接层(Fully Connected Layer)

全连接层是最基础的神经网络层,也是最早被提出的层次之一。全连接层的每一个神经元与上一层的所有神经元都有链接。最常见的应用场景是用于分类问题中的输出层。

import tensorflow as tf

model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(10)
])
2. 卷积层(Convolutional Layer)

卷积层通常用于图像处理和计算机视觉领域中,通过卷积计算来抽取图像的特征。卷积层由多个过滤器(卷积核)组成,每个卷积核可以学习特定的特征。通过不同大小的卷积核和步长来改变输出的形状。

import tensorflow as tf

model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28, 28, 1)),
    tf.keras.layers.MaxPooling2D((2,2)),
    tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D((2,2)),
    tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10)
])
3. 池化层(Pooling Layer)

池化层用于降维且保留重要的特征信息。通过缩小输入张量的分辨率来减少计算的复杂性。最大池化层输出卷积核内最大的值,平均池化层输出卷积核内所有值的平均值。

import tensorflow as tf

model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28, 28, 1)),
    tf.keras.layers.MaxPooling2D((2,2)),
    tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D((2,2)),
    tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10)
])
4. 隐藏层(Hidden Layer)

隐藏层位于输入层和输出层之间,用于提取输入数据的特征。通过不断地优化模型参数,训练出适合数据的模型。隐藏层的节点数量越多,模型的表达能力越强,但需要更多的计算时间和计算资源。

import tensorflow as tf

model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(100,)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(1)
])
5. 长短时记忆层(LSTM)

长短时记忆网络是一种循环神经网络,用于处理序列数据。LSTM通过加入门控,可以自动管理状态信息的流动,较好地解决了 vanishing gradient 问题。

import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.LSTM(32, input_shape=(None, 100)),
    tf.keras.layers.Dense(10)
])
总结

以上是深度学习中常用的几种层。选择不同的层次进行组合,可以构建各种应用场景的模型。