keras入门

来源:互联网 发布:生产环境 调试java 编辑:程序博客网 时间:2024/06/05 04:46

框架为 keras+tensorflow


几个重要过程:

1、下载数据集  load data

2、定义模型   define model

3、编译模型   compile model

4、拟合模型  fit model

5、评估模型  evaluate model


第一步:下载数据集 

设置随机种子,可以使得每次实验时的起始都一样,便于对比,也便于debug


第二步: 导入模型(必须包含numpy)

from keras.models import Sequentialfrom keras.layers import Denseimport numpy#fit random seed for reproducibilitynumpy.random.seed(种子)


第三步:使用numpy的loadtxt()函数导入下载好的数据,将数据分为输入X和输出Y

dataset=numpy.loadtxt('数据集名称',delimiter=",")#split into input(X) and output(Y)x=dataset[:,0:8]y=dataset[:,8]    #假定有8列


第四步:定义模型

定义输入层个数,此例中为8个。

定义连接层为全连接  Dense,神经元个数定义为12个(可以根据需要更改)

此例中,定义层数为3层,权重可以选择 “uniform”(权重为0~0.05),也可以选择“normal”,默认服从高斯分布,选定激活函数为

“relu”,为了使输出在0~1之间,令最后一层的激活函数为“sigmoid”。

model=Squential()model.add(Dense(12,input_dim=8,activation="relu"))model.add(Dense(8,activation="relu"))model.add(Dense(1,activation="sigmoid"))


第五步:编译模型

需要后端支持,本例使用的tensorflow,它会根据系统是否有GPU加速而自动选择,没有则选则CPU加速

在该阶段定义损失函数loss,二分类方法可以为“binary_crossentropy”,也可以为其他类型。

优化器optimizer 可以选择 “adam”,也可以选择其他类型。

最后定义分类精度metric ,可以选择“accuracy”

model.compile(loss='binary_crossentropy',optimizer='adam',matric=['accuracy'])

第六步:拟合模型fit

这阶段需要将输入X和输出Y作为参数进行传递,同时需要定义enpochs参数,本例中选择150,batch_size10

model.fit(x,y,epochs=150,batch_size=10)

第七步:评估模型evaluate

训练完模型之后,需要根据测试集去评估模型的好坏

这里为了简便,用测试集来评估,实际使用中,经常将数据集分为训练集和测试集两类,然后使用训练出来的模型对测试集进行

验证

scores=model.evaluate(x,y)print("\n%s: %2.f%%" %(model.metrics_names[1],scores[1]*100))