网络就像是一层层连起来或者说叠加起来,keras训练网络分为以下步骤:定义》编译》训练》评估》预测
# 简易多层感知神经网络示例
from keras.models import Sequential
from keras.layers import Dense
import numpy
# 加载,预处理数据集
dataset = numpy.loadtxt("pima-indians-diabetes.csv", delimiter=",")
X = dataset[:,0:8]
Y = dataset[:,8]
# 1. 定义模型
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 2. 编译模型
##优化器optimizer,损失函数loss,评估指标metrics。
##编译的过程也是 Keras 将我们刚定义好的模型转化为底层平台(TensorFlow 或 Theano)结构描述过程,底层平台会负责后续的计算任务,GPU、CPU 的调度选择,分布式运行等。
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 3. 训练模型
history = model.fit(X, Y, nb_epoch=100, batch_size=10)
# 4. 评估模型
loss, accuracy = model.evaluate(X, Y)
print("\nLoss: %.2f, Accuracy: %.2f%%" % (loss, accuracy*100))
# 5. 数据预测
probabilities = model.predict(X)
predictions = [float(round(x)) for x in probabilities]
accuracy = numpy.mean(predictions == Y)
print("Prediction Accuracy: %.2f%%" % (accuracy*100))