📜  Keras中的深度学习-建立深度学习模型(1)

📅  最后修改于: 2023-12-03 15:32:28.143000             🧑  作者: Mango

Keras中的深度学习-建立深度学习模型

Keras是一个高层神经网络API,它可以运行在TensorFlow、CNTK等低层框架之上,允许用户以更直观、更简便的方式定义和训练神经网络模型。

建立深度学习模型

在Keras中,可以使用Sequential模型或者函数式API来建立神经网络模型。下面分别介绍这两种方式。

Sequential模型

Sequential模型是一个线性堆叠模型,可以通过add()方法逐层添加神经网络层。可以像下面这样建立一个简单的全连接神经网络模型:

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

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

上述代码建立了一个两层的神经网络模型,第一层有64个神经元,使用ReLU作为激活函数,输入是大小为100的一维向量;第二层有10个神经元,使用Softmax激活函数,输出10个类别的概率分布。

函数式API

函数式API是一组用于创建神经网络模型的可重用的高级操作。可以通过将层当做函数来使用它。可以像下面这样建立一个与上述Sequential模型相同的神经网络模型:

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

input = Input(shape=(100,))
x = Dense(64, activation='relu')(input)
output = Dense(10, activation='softmax')(x)

model = Model(inputs=input, outputs=output)
编译模型

在Keras中,需要使用compile方法来编译模型。可以像下面这样编译模型:

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

上述代码使用了交叉熵损失函数、随机梯度下降优化器和准确率指标。这些参数可以根据需要进行修改。

训练模型

在Keras中,可以使用fit方法来训练模型。可以像下面这样训练模型:

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

上述代码使用了训练集x_train和标签y_train训练模型,进行了10次迭代,每次迭代使用32个样本进行训练。这些参数也可以根据需要进行修改。

评估模型

在Keras中,可以使用evaluate方法来评估模型。可以像下面这样评估模型:

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

上述代码使用了测试集x_test和标签y_test评估模型,每次评估使用128个样本。

保存模型

在Keras中,可以使用save方法将模型保存到磁盘。可以像下面这样保存模型:

model.save('model.h5')

上述代码将模型保存到名为model.h5的文件中。可以使用load_model方法加载模型:

from keras.models import load_model

model = load_model('model.h5')
结论

上述就是使用Keras建立深度学习模型的方法。Keras的高层API使建立和训练神经网络变得更加简单和直观,使程序员能够更加专注于模型的设计和调试。