还是手写数字辨识问题
第一步,设计架构(模型)
老版本中,我们每一层的输出,在1.0版本里面参数名字是output,而在Keras2.0里面,改成了units,这个看上去更为直观,表明下一层我要输出多少个节点。并制定激活函数。
然后,因为下一层的输入就是上市上一层的输出,所以下一层里面不需要在生命input dimension了,input就是500。
那直接定义units,就是输出到下一层的节点数。并指定激活函数。
那最后输出一层,因为是手写数字辨识,所以一共10个数字,10个输出,然后在指定激活函数,用softmax。也可以用别的激活。
这里选择softmax是因为,每一项的输出都是介于0-1之间,所有项的总和是1,这样就类似于概率来看待这个问题。
第二步,进行Loss方程和优化器设定
1. 定义Loss function,这里选择交叉熵
2. 定义优化器, 这里选择非基础的gradient descent,但所有优化器基本都是base 于gradient descent的。这里使用adam。
还有很多种优化器,可以后面研究不同的实现,我们之前学过了Adagrad
第三步,选择最好的function
1. train 我们的 network,其实在Keras里面一句话搞定:model.fit
x_train -> 代表training data的 输入,
image的维度 * image总数
y_train -> 代表training data的 输出&#