介绍:
Keras是一个开源的神经网络库,它基于Python语言,并能够在多个深度学习框架上运行,包括TensorFlow、Theano和CNTK。Keras提供了一种简洁而高层次的API,使得用户能够快速构建、训练和部署神经网络模型。
Keras的设计理念是以用户友好和易用性为重点。它提供了一系列高层次的构建模块,可以快速创建各种类型的神经网络模型,如全连接神经网络、卷积神经网络和循环神经网络等。Keras还提供了丰富的预训练模型和工具,方便用户进行模型的迁移学习和迁移部署。
Keras的优点包括简单易用、高度模块化、可扩展性强、跨平台和与TensorFlow等深度学习框架无缝集成等。由于其灵活性和高效性,Keras已经成为了开发人员和研究人员最喜欢的深度学习框架之一。
建模:
from numpy import loadtxt
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
# load the dataset
dataset = loadtxt('Lesson47-pima-indians-diabetes.data', delimiter=',')
# split into input (X) and output (y) variables
X = dataset[:,0:8]
y = dataset[:,8]
# define the keras model
model = Sequential()#串型神经网络
model.add(Dense(12, input_dim=8, activation='relu'))#第一层hidden layer1,12个节点输出,8个点输入
model.add(Dense(8, activation='relu'))#第二层hidden layer2,8个节点输出
model.add(Dense(1, activation='sigmoid'))#输出 sigmoid把数据弄为0~1之间,最后大于0.5的为1
# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# fit the keras model on the dataset
model.fit(X, y, epochs=500)
# evaluate the keras model
_, accuracy = model.evaluate(X, y)
print('Accuracy: %.2f' % (accuracy*100))
预测:
# make class predictions with the model
y_train_predict = model.predict(X)
a = np.ones(len(X))
b = a/2
c = np.insert(y_train_predict,0,b,axis=1)
predictions = np.argmax(c,axis=1)
predictions = predictions.reshape(len(X),1)
#print(y_train_predict)
# summarize the first 5 cases
for i in range(len(X)):
print('%s => %d (expected %d)' % (X[i].tolist(), predictions[i], y[i]))