我刚刚开始使用张量流构建神经网络,不同的在线资源有不同的创建方法。我注意到的一件事是顺序 API 是如何实现的。有些使用 tf.keras.Sequential() 而另一些使用 tf.keras.models.Sequential()?谁能告诉我其中一种的区别以及何时使用另一种?
我尝试在这种模式下使用它们,但它们都提供了良好的结果。
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, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=50)
model.evaluate(x_test, y_test)
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=50)
model.evaluate(x_test, y_test)
这里有几种分析函数和类并查看它们导入来源的方法。
import tensorflow as tf
# let's analyse both classes
obj1 = tf.keras.models.Sequential
obj2 = tf.keras.Sequential
# we can check their ids - if the ids are the same than it is the same object
print (id(obj1))
print (id(obj2))
# this will print information about class origin
print (tf.keras.models.Sequential)
# <class 'keras.src.models.sequential.Sequential'>
print (tf.keras.Sequential)
# <class 'keras.src.models.sequential.Sequential'>