📅  最后修改于: 2023-12-03 15:32:28.143000             🧑  作者: Mango
Keras是一个高层神经网络API,它可以运行在TensorFlow、CNTK等低层框架之上,允许用户以更直观、更简便的方式定义和训练神经网络模型。
在Keras中,可以使用Sequential模型或者函数式API来建立神经网络模型。下面分别介绍这两种方式。
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是一组用于创建神经网络模型的可重用的高级操作。可以通过将层当做函数来使用它。可以像下面这样建立一个与上述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使建立和训练神经网络变得更加简单和直观,使程序员能够更加专注于模型的设计和调试。