2-4实战分类之模型构建

Model为Sequential模型
构建一个展平层
还有三个全连接层,单元为300,100,10


#tf.keras.model.Sequential
#我的理解是:model是建立的一个Sequential模型
model = keras.models.Sequential()
#添加一些图层,这一句是指添加一个展平层,将输入一个28*28的一维向量
model.add(keras.layers.Flatten(input_shape=[28,28]))
#再加一层全连接层
#300个单元
model.add(keras.layers.Dense(300,activation="relu"))
model.add(keras.layers.Dense(100,activation="relu"))
model.add(keras.layers.Dense(10,activation="softmax"))
#另外一种写法
# model1 = keras.models.Sequential([
#     keras.layers.Flatten(input_shape=[28,28]),
#     keras.layers.Dense(300,activation='relu'),
#     keras.layers.Dense(100,activation='relu'),
#     keras.layers.Dense(10,activation='softmax')
# ])
#relu: y = max(0,x)
#softmax:将向量变成概率分布,x = [x1,x2,x3]
#            y = [e^x1/sum,e^x2/sum,e^x3/sum],
#            sum=e^x1/sum+e^x2/sum+e^x3/sum
#为什么用sparse:y只是一个index值,y经过one-hot变成向量
#if y是一个向量则loss='categorical_crossentropy'
model.compile(loss='sparse_categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])

此时模型构建成功

model.layers

显示一下层的…地址吧
在这里插入图片描述
显示一下层的信息


model.summary()
#全连接层是什么
#一些图片[None,784]*W + b -> [None,300]
#W.shape[784,300],b=[300]
#784*300+300=235500

显示结果
在这里插入图片描述
开始训练
训练55000张照片,遍历十次

history = model.fit(x_train,y_train,epochs=10,
                    validation_data=(x_valid,y_valid))

训练结果…然而精度很低…(不知道为啥)
在这里插入图片描述
打印一下history的类型


print(type(history))

<class 'tensorflow.python.keras.callbacks.History'>

history里面保存着一些信息,精度什么的。。

print(history)
print(history.history)

结果

<tensorflow.python.keras.callbacks.History object at 0x000002011AA0F5E0>
{'loss': [157722832.0, 2.3026463985443115, 2.302649736404419, 2.302652359008789, 2.302635669708252, 2.3026511669158936, 2.3026418685913086, 2.302649974822998, 2.302652359008789, 2.3026490211486816], 'accuracy': [0.09874545782804489, 0.09761818498373032, 0.0979272723197937, 0.09836363792419434, 0.10001818090677261, 0.09836363792419434, 0.09892727434635162, 0.1000545471906662, 0.09983636438846588, 0.09836363792419434], 'val_loss': [2.3026063442230225, 2.302546977996826, 2.302919626235962, 2.3028368949890137, 2.302779197692871, 2.3026769161224365, 2.302711248397827, 2.302788257598877, 2.3027048110961914, 2.3026537895202637], 'val_accuracy': [0.09860000014305115, 0.1111999973654747, 0.09139999747276306, 0.09139999747276306, 0.10119999945163727, 0.10119999945163727, 0.10080000013113022, 0.09860000014305115, 0.09799999743700027, 0.09139999747276306]}

打印一下指标的图示…
在这里插入图片描述
之前optimizer="sgd"改成optimizer="adam"神奇的事情发生了
在这里插入图片描述
各项指标的图示
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值