keras训练mnist模型

本文介绍了如何在本地Python环境中安装TensorFlow(包括2.0版本的Keras集成),并展示了使用MNIST数据集训练神经网络的过程,涉及数据预处理、模型构建、训练和参数评估,以及模型的保存和加载。
摘要由CSDN通过智能技术生成

tensorflow的安装:在本地的python 环境里 pip install -i https://pypi.douban.com/simple 安装成功后通过pip freeze 查看 tensor 的版本,2.0版本后集成了keras环境。
或者使用google的colab环境:在线tensor
使用方法参考博文:https://blog.csdn.net/weixin_44720401/article/details/106796787

import numpy as np
import matplotlib.pyplot as plt

import tensorflow as tf
# 手写数字 mnist, cifar10
from tensorflow.keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 将二位数据转换成图片显示
plt.imshow(x_train[0].reshape(28, 28), cmap='gray')

# 对数据做处理
x_train = x_train.reshape(-1, 784) / 255.0
x_test = x_test.reshape(-1, 784)   / 255.0
# 或者使用提供的函数对x_train, x_test做标准化处理
scaler = StandardScaler()
x_train_scaled = scaler.fit_transform(x_train)
x_test_scaled = scaler.transform(x_test)

y_train = y_train.astype(np.float32)
y_test = y_test.astype(np.float32)

# tf.one_hot()
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)
from tensorflow.keras.layers import Dense

# 定义神经网络.
model = tf.keras.Sequential()
# 如果在这里展平数据
model.add(Flatten(input_shanpe=(28, 28))
# 正则化可以在每一层加入,一般用l2效果好,l1会使一些神经元失效。
model.add(Dense(64, activation='relu', kernel_regularizer='l1_l2',  input_shape=(784, )))
# model.add(Dense(64, activation='relu', input_dim=784))
model.add(Dense(64, activation='relu'))
# 输出层的激活, 二分类是sigmoid, 多分类的话是softmax
model.add(Dense(10, activation='softmax'))
# 配置网络
# 如果非one_hot编码,loss='sprase_categorical_crossentropy'
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 训练网络
model.fit(x_train, y_train, batch_size=64, epochs=20, validation_data=(x_test, y_test), )
# 查看网络参数量
model.summary()
model.evaluate(x_test, y_test)

# 保存模型 HDF5 分层的数据结构.
model.save('./model.h5')
# 加载
model2 = tf.keras.models.load_model('./model.h5')
model2.evaluate(x_test, y_test)

激活函数使用relu的优点:
https://zhuanlan.zhihu.com/p/428448728#%E4%B8%80%E3%80%81%E4%BB%80%E4%B9%88%E6%98%AF%E6%BF%80%E6%B4%BB%E5%8
详细keras使用方法:keras 中文手册 https://keras.io/zh/optimizers/#adam

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值