参考资料:tf官方文档:https://tensorflow.google.cn/guide/keras#functional_api
图片来自:https://blog.csdn.net/zjw642337320/article/details/81204560
Sequential
模型个人总结:
整个过程可分为五步:
1创建Sequential模型,2添加所需要的神经层,3使用.compile方法确定模型训练结构,4使用.fit方法
使模型与训练数据“拟合”,5.predict方法进行预测。
model = keras.Sequential()
实例为建立一个最终输出维度为10的分类结果的全连接神经网络。使用.add()函数进行各个层的堆叠:
# Adds a densely-connected layer with 64 units to the model:
model.add(keras.layers.Dense(64, activation='relu'))
# Add another:
model.add(keras.layers.Dense(64, activation='relu'))
# Add a softmax layer with 10 output units:
model.add(keras.layers.Dense(10, activation='softmax'))
我们可以使用很多 tf.keras.layers,详见:
https://tensorflow.google.cn/api_docs/python/tf/keras/layers
这些layers有相同的构造函数参数:
compile
方法配置该模型的学习流程:model.compile(optimizer=tf.train.AdamOptimizer(0.001),
loss='categorical_crossentropy',
metrics=['accuracy'])
tf.keras.Model.compile
采用三个重要参数:
optimizer
:此对象会指定训练过程。从 tf.train
模块向其传递优化器实例,例如 AdamOptimizer
、RMSPropOptimizer
或 GradientDescentOptimizer
。loss
:要在优化期间最小化的函数。常见选择包括均方误差 (mse
)、categorical_crossentropy
和 binary_crossentropy
。损失函数由名称或通过从 tf.keras.losses
模块传递可调用对象来指定。metrics
:用于监控训练。它们是 tf.keras.metrics
模块中的字符串名称或可调用对象。实例
import numpy as np
data = np.random.random((1000, 32))
labels = np.random.random((1000, 10))
val_data = np.random.random((100, 32))
val_labels = np.random.random((100, 10))
model.fit(data, labels, epochs=10, batch_size=32,
validation_data=(val_data, val_labels))
keras.models.Model.fit()函数各个参数的详解:https://tensorflow.google.cn/api_docs/python/tf/keras/models/Model#fit
tf.keras.Model.evaluate
和 tf.keras.Model.predict
方法# x , y为分别的样本与对所对应的标签,
# dataset为打包好的数据集,包含样本特征与标签
model.evaluate(x, y, batch_size=32)
# or
model.evaluate(dataset, steps=30)
model.predict(x, batch_size=32)
# or
model.predict(dataset, steps=30)