Day 17 self-attention的实作准备(三) 测试使用keras来建立模型

前言

昨天说到要跑范例程序,但是只有做到下载资料集,以及切分资料集,今天来建立模型

利用Sequential API来建立模型

model = keras.models.Sequential()
model.add(keras.layers.Flatten(input_shape=[28, 28]))
model.add(keras.layers.Dense(300, activation="relu"))
model.add(keras.layers.Dense(100, activation="relu"))
model.add(keras.layers.Dense(10, activation="softmax"))

我们来了解一下这个程序
第一行是建立一个Sequential的模型,这是keras神经网路种类中最简单的
接下来建立第一层,并将它加入模型。这是一个Flatten层,功能是将每一个输入的图片都转换成1D的阵列
第二层是一个Dense层,有300个神经元,使用Relu来当作激活函数
第三层也是一个Dense层,有100个神经元,也是使用Relu来当作激活函数
最後一层是一个Dense层,它有10个神经元,使用softmax当作激活函数

model.summary()

模型的summary()方法可以显示模型的每一层,包括每一层的名称、输出外型(Output shape),以及训练参数量。摘要的结尾是参数的总数,包括可以训练的和不可训练的参数。

Dense层通常会有很多参数。第一个隐藏层就有235,500个参数,所以模型有大量的灵活度可以拟合训练资料,但是这也代表模型会有过拟合的问题。

keras.utils.plot_model(model)

这个function可以用来产生模型的图像

後记

今天讲完如何建立模型,明天会讲到模型的compile跟fit,这样就完成一次完整的训练了


<<:  IOS、Python自学心得30天 Day-14 H5与Pb模型档案

>>:  Day04:原来早就在这里有共享经济了

[履历]用简报让面试官集中注意力

都是电视剧,难看的你连一分钟都看不下去,好看的却能让你废寝忘食地去追;同样的道理也能放到简报上面。...

Day14:今天来谈一下Microsoft Defender for Endpoint中的威胁与弱点管理

Microsoft Defender for Endpoint的威胁与弱点管理(TVM)功能 会根据...

[Day02] 变数

变数 变数是用来储存资料和进行基本运算的基本单位;在宣告时给资料一个名称,名称像一个盒子把资料装起来...

Swift 新手-打造第一个 iOS App

开发前的新手纠结 商学院出身,非资工背景,团队内也没有熟悉 app 开发的人才 决定做 app 接触...

【Day 7】Replica 的 Quorum 、State machine replication

5.2 Quorum read-after-write(read-your-write) consi...