📜  使用Keras进行深度学习-训练模型(1)

📅  最后修改于: 2023-12-03 14:49:48.915000             🧑  作者: Mango

使用Keras进行深度学习-训练模型

简介

Keras是一个高度抽象化、基于Python的深度学习库,它能够让你快速搭建、训练和部署神经网络模型。本文将介绍如何使用Keras构建和训练模型。

准备工作

要使用Keras,你需要安装它和它的依赖项。你可以使用pip命令来完成安装:

pip install keras

另外,你需要安装TensorFlow、Theano或者CNTK以供后端计算。如果你没有任何选择,请使用TensorFlow。

构建模型

Keras提供了两种构建模型的方式:序贯模型和函数式API。

序贯模型(Sequential)

序贯模型是基本且常用的模型,它是将各种组件直接堆叠起来,形成一个简答的线性堆叠模型。

from keras.models import Sequential
from keras.layers import Dense

model = Sequential()
model.add(Dense(units=64, activation='relu', input_dim=100))
model.add(Dense(units=10, activation='softmax'))

上面的代码生成了一个两层的神经网络,输入数据有100个特征,输出有10个类别。

函数式API

函数式API可以构建更为复杂的模型,例如多输入、多输出和共享层等等。

from keras.layers import Input, Dense
from keras.models import Model

inputs = Input(shape=(100,))
x = Dense(units=64, activation='relu')(inputs)
outputs = Dense(units=10, activation='softmax')(x)

model = Model(inputs=inputs, outputs=outputs)

上面的代码与上面的序贯模型代码等价。

编译模型

在训练模型之前,需要配置训练过程,这是通过编译来实现的。Keras中的compile函数可实现此功能。

model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])

上面的代码将损失函数设置为交叉熵,优化器为随机梯度下降,并计算准确度。

训练模型

有了准备工作和模型配置,就可以开始训练模型:

model.fit(x_train, y_train, epochs=5, batch_size=32)

上面的代码将模型训练5轮,每次训练随机选择32个样本进行。

评估模型

模型训练完成后,可以对模型进行评估:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)

上面的代码将模型在测试集上的损失和准确度返回。

预测

模型训练完成后,可以用它来进行预测:

classes = model.predict(x_test, batch_size=128)

上面的代码将模型在测试集上的预测结果返回。

结论

Keras简化了深度学习模型的构建和训练,使得即使没有深度学习背景的开发人员也能够轻松上手。使用Keras,你可以快速构建和训练深度学习模型,并用它来进行预测和评估。