我最近开始使用Tensorflow进行深度学习。我发现这个语句model = tf.keras.models.Sequential()
有点不同。我无法理解它的真正含义,还有其他用于深度学习的模型吗?我之前在MatconvNet上工作过(一种用于卷积神经网络的Matlab库),从未看到任何顺序定义。
我最近开始使用Tensorflow进行深度学习。我发现这个语句model = tf.keras.models.Sequential()
有点不同。我无法理解它的真正含义,还有其他用于深度学习的模型吗?我之前在MatconvNet上工作过(一种用于卷积神经网络的Matlab库),从未看到任何顺序定义。
Keras模型有两种构建方式:顺序API和函数式API。
顺序API可以让你逐层创建大多数问题的模型。但它的限制是不允许你创建共享层或具有多个输入或输出的模型。
相反,函数式API可以让你创建更加灵活的模型,因为你可以轻松地定义层与除了前一层和后一层之外的任何其他层的连接。实际上,你可以将层与(真正意义上的)任何其他层连接起来。因此,创建像孪生网络和残差网络这样的复杂网络变得可能。
详情请访问:https://machinelearningmastery.com/keras-functional-api-deep-learning/
从定义中可以看出,Keras的Sequential模型是一种线性层堆叠。您可以通过向构造函数传递层实例列表来创建Sequential模型:
from keras.models import Sequential
from keras.layers import Dense, Activation
model = Sequential([
Dense(32, input_shape=(784,)),
Activation('relu'),
Dense(10),
Activation('softmax'),
])
您也可以通过使用 .add() 方法来简单地添加图层:
model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))
更多细节请点击这里
Sequential
模型是一系列层的线性堆叠。
ConvNets 的常见架构是顺序架构。然而,有些架构不是线性堆栈。例如,siamese 网络是两个并行神经网络,其中一些层是共享的。更多示例请点击此处。
正如其他人已经提到的那样,“Sequential模型是一系列层的线性堆叠。”
Sequential模型API是一种创建深度学习模型的方式,其中创建Sequential类的实例,然后创建并添加模型层。
添加层的最常见方法是Piecewise。
import keras
from keras.models import Sequential
from keras.layers import Dense
#initialising the classifier
#defining sequential i.e sequense of layers
classifier = Sequential()
# Adding the input layer and the first hidden layer
classifier.add(Dense(units = 6,activation = 'relu'))
#units = 6 as no. of column in X_train = 11 and y_train =1 --> 11+1/2
#Adding the second hidden lyer
classifier.add(Dense(units = 6, activation='relu'))
#adding the output layer
classifier.add(Dense(units = 1, activation = 'sigmoid))