我最近已开始使用Tensorflow进行深度学习。我发现此语句model = tf.keras.models.Sequential()
有点不同。我无法理解真正的含义,深度学习还有其他模型吗?
我在MatconvNet(用于卷积神经网络的Matlab库)上做了很多工作。从来没有看到过任何顺序定义。
答案 0 :(得分:4)
有两种构建Keras模型的方法:顺序模型和功能模型。
顺序API允许您针对大多数问题逐层创建模型。它的局限性在于它不允许您创建共享图层或具有多个输入或输出的模型。
或者,功能性API允许您创建具有更大灵活性的模型,因为您可以轻松定义其中各层不仅与上一层和下一层相连的模型。实际上,您可以将图层连接到(字面上)任何其他图层。结果,创建复杂的网络(如暹罗网络和残留网络)成为可能。
有关更多详细信息,请访问:https://machinelearningmastery.com/keras-functional-api-deep-learning/
答案 1 :(得分:3)
Sequential
模型是层的线性堆栈。
ConvNets的通用体系结构是顺序体系结构。但是,某些体系结构不是线性堆栈。例如,暹罗网络是具有某些共享层的两个并行神经网络。 More examples here。
答案 2 :(得分:2)
根据 Keras 文档的定义,顺序模型是线性的图层堆栈。您可以通过将图层实例列表传递给构造函数来创建顺序模型:
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'))
有关更多详细信息,请单击here
答案 3 :(得分:0)
正如其他人已经提到的,“顺序模型是层的线性堆栈。”
Sequential 模型 API 是一种创建深度学习模型的方法,其中创建 Sequential 类的一个实例,并创建模型层并将其添加到其中。
最常用的添加图层的方法是分段
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))