📅  最后修改于: 2023-12-03 15:32:28.068000             🧑  作者: Mango
Keras是一个开源的深度学习框架,它采用了用户友好的API,能够方便快捷地构建和训练深度学习模型。Keras可以作为高级神经网络API,以TensorFlow、CNTK或者Theano为后端来运行。
Keras的核心概念包括“层”(Layer)、“模型”(Model)和“损失函数”(Loss Function)。
Keras还提供其他重要的概念,如“优化器”(Optimizer)、“学习率衰减”(Learning Rate Decay)等。
下面是使用Keras构建Hello World程序的代码,该程序是一个基于MNIST数据集的手写数字识别模型。
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD
from keras.datasets import mnist
import numpy as np
# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 数据预处理
x_train = x_train.reshape(60000, 784)
x_test = x_test.reshape(10000, 784)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
y_train = np.eye(10)[y_train]
y_test = np.eye(10)[y_test]
# 建立模型
model = Sequential()
model.add(Dense(512, input_shape=(784,)))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(10))
model.add(Activation('softmax'))
# 定义优化器
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
# 编译模型,定义损失函数和优化器
model.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train,
batch_size=128,
epochs=20,
validation_data=(x_test, y_test))
# 评估模型
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
代码解释:
Keras是一个简单易用、可扩展的深度学习框架,它提供了高层次的API和丰富的模型构建模块,同时支持多种常见的深度学习网络。Keras在实际应用中表现出色,并被广泛采用。