【Keras】简单神经网络搭建

导入安装包

import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Flatten
from keras.optimizers import SGD   #梯度下降
import keras.datasets.mnist as mnist

加载并划分数据集

使用手写数字数据

#划分数据集
(x_train,y_train),(x_test,y_test) = mnist.load_data()
x_train.shape

在这里插入图片描述
将数据维度由(60000,28,28)转为(60000,28*28),即(60000,784)

x_train = x_train.reshape(60000,784)
x_test = x_test.reshape(10000,784) 

数据处理

数据类型转换:
x_train和x_test里的数据都是int整数,要把它们转换成float32浮点数
数据归一化处理:
要把x_train和x_test里的整数变成0-1之间的浮点数,就要除以255。因为色彩的数值是0-255,所以要变成0-1之间的浮点数,只要简单的除以255
one-hot处理:
y值0-9数字变成onehot模式,以后就可以把分类数据变成这种形式

#设置数据类型为float32
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')

# 数据值映射在[0,1]之间
x_train = x_train/255
x_test = x_test/255

#数据标签one-hot处理
y_train = keras.utils.to_categorical(y_train,10)
y_test = keras.utils.to_categorical(y_test,10)
print(y_train[1])

创建模型并训练

optimizer优化器:梯度下降
不懂梯度下降的,看这篇文章(通俗易懂讲解梯度下降法),写得很通俗易懂
loss损失函数:categorical_crossentropy
在这里插入图片描述

metrics评价指标:准确度

#建立神经网络
model = Sequential()
model.add(Dense(256,activation='relu',input_shape=(784,))) #第一层隐藏层,神经元256
model.add(Dense(256,activation='relu',input_dim=784))
model.add(Dense(256,activation='relu'))  #第二层隐藏层,神经元256
model.add(Dense(10,activation='softmax'))   #输出维度为10,激活函数:softmax

#编译模型
model.compile(optimizer=SGD(),
             loss='categorical_crossentropy',
             metrics=['acc'])
#训练模型
model.fit(x_train,y_train,batch_size=100,epochs=15,validation_data=(x_test, y_test))

在这里插入图片描述

#打印模型
model.summary()

在这里插入图片描述参考:
Keras-建立简单神经网络

写文不容易,请给个赞吧!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值