Keras训练一个基本体系化的分类模型流程案例

Keras训练一个基本体系化的分类模型流程案例

在这里插入图片描述

import numpy as np
from keras.datasets import mnist
from keras.utils import np_utils        # 导入keras提供的numpy工具包
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD# 载入数据
(x_train,y_train),(x_test,y_test) = mnist.load_data()
print("x_shape:",x_train.shape,"y_shape:",y_train.shape)# 将数据转换由(60000,28,28)转换为(60000,784),并进行归一化除以255
x_train = x_train.reshape(x_train.shape[0],-1)/255.0
x_test = x_test.reshape(x_test.shape[0], -1)/255.0
print(x_train.shape,x_test.shape)# 将数据转换为one-hot编码的格式
y_train = np_utils.to_categorical(y_train, num_classes=10)
y_test = np_utils.to_categorical(y_test, num_classes=10)# 创建模型,输入是784个神经元,输出为10个神经元
model = Sequential([Dense(units=10,input_dim=784,bias_initializer="one",activation="softmax")]
)# 自定义优化器
sgd=SGD(lr=0.01)
# 编译模型,定义优化器,loss_function,训练过程中计算准确率
# model.compile(optimizer=sgd,loss="mse",metrics=["accuracy"],)   # 使用均方差作为损失函数
model.compile(optimizer=sgd,loss="categorical_crossentropy",metrics=["accuracy"],)   # 使用交叉熵作为损失函数# 喂入数据集,并规定每次喂入32张图像,设定迭代周期
model.fit(x_train,y_train,batch_size=32,epochs=100)# 评估模型
loss,accuracy = model.evaluate(x_test, y_test)
print("test losee:",loss,"accuracy:",accuracy)

示例二:

import picklefrom sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import numpy as npfrom keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import SGD
from keras.regularizers import l2
import matplotlib.pyplot as pltdata_dict = pickle.load(open('./data.pickle', 'rb'))data = data_dict['data']
labels = data_dict['labels']
for index_data,data_arr in enumerate(data):if len(data_arr) != 42:print('---删除掉异常元素---', index_data)del data[index_data]del labels[index_data]data=np.vstack(data)print('+++++++++++++++++++',data.shape)
labels = np.asarray(data_dict['labels'])x_train, x_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, shuffle=True, stratify=labels)print(x_train.shape)# 将数据集标签改为one-hot编码的格式
y_train = np_utils.to_categorical(y_train, num_classes=9)
y_test = np_utils.to_categorical(y_test, num_classes=9)# 创建网络模型,输入是784个神经元,输出为10类
model = Sequential([Dense(units=200,input_dim=42,bias_initializer="one",activation="relu",kernel_regularizer=l2(0.0003)),# Dropout(0.5),Dense(units=500,bias_initializer="one",activation="relu",kernel_regularizer=l2(0.0003)),Dense(units=100,bias_initializer="one",activation="relu",kernel_regularizer=l2(0.0003)),# Dropout(0.5),Dense(units=9,bias_initializer="one",activation="softmax",kernel_regularizer=l2(0.0003))
])# 定义优化器
sgd = SGD(lr=0.01)
# 编译模型,定义优化器,loss_function,训练过程计算准确率
model.compile(optimizer=sgd,loss="categorical_crossentropy",metrics=["accuracy"])# 训练数据集
history =model.fit(x_train,y_train,batch_size=32,epochs=200,validation_data=(x_test,y_test))
model.save("classmodel.h5")  # 会保存成HDF5的文件,pip install h5py
# 此种模型保存方式为保存模型的通用方式,既可以保存模型的结构,又可以保存模型的参数# 评估模型
loss,accuracy = model.evaluate(x_test, y_test)
print("test loss:",loss,"accuracy:",accuracy)history_dict = history.history
print(history_dict.keys())import matplotlib.pyplot as plt"""********************绘制训练损失与验证损失的训练结果********************"""# 纵坐标,所需绘制的数据
history_dict = history.history
loss_values = history_dict['loss']
val_loss_values = history_dict['val_loss']# 横坐标,步长
epochs = range(1, len(loss_values) + 1)# 绘制图像
plt.plot(epochs, loss_values, 'bo', label='Training loss')
plt.plot(epochs, val_loss_values, 'b', label='Validation loss')# 标题
plt.title('Training and validation loss')# 横、纵坐标标签
plt.xlabel('Epochs')
plt.ylabel('Loss')# 自适应标签的位置
plt.legend()# 显示图像
plt.show()"""********************绘制训练精度与验证精度的训练结果********************"""
# 清除图像
plt.clf()acc = history_dict['acc']
val_acc = history_dict['val_acc']plt.plot(epochs, val_acc, 'bo', label='Training acc')
plt.plot(epochs, acc, 'b', label='Validation acc')plt.title('Training and validation acc')plt.xlabel('Epochs')
plt.ylabel('Acc')plt.legend()plt.show()# 加载模型并检测
from keras.models import load_model
model = load_model('classmodel.h5')    # 需要安装keras==2.0.4版本
result=model.predict(x_test)
print(result)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/150286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity 打包exe设置分辨率

unity在2019以上版本不支持在打开的时候弹出分辨率设置的窗口,但是因为有些需求需要可以设置分辨率进行操作,我在查了好多办法后找到了解决方案,废话不多说开始干货。 1.先去百度云上下载这个文件 链接:https://pan.baidu.com/s/1…

LeetCode Hot100之十:239.滑动窗口最大值

题目 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 提示&#xff1a; 1 < nums.length < 10^5 -10^4 < nums[i…

BUG 随想录 - Java: 程序包 com.example.xxx 不存在

目录 一、BUG 复现 二、解决问题 一、BUG 复现 背景&#xff1a;通过 feign 的最佳实践&#xff0c;将 feign 单独提取成一个微服务&#xff0c;接着在需要远程调用的微服务中引入 feign 模块&#xff0c;并在启动类通过 EnableFeignClients 声明指定的 Feign 客户端. 出现问题…

LENOVO联想ThinkBook 16p G2 ACH(20YM)2022款锐龙版原厂Win11预装系统镜像

链接&#xff1a;https://pan.baidu.com/s/14AATH2NYsLwK9jMpej2BNw?pwd53sy 提取码&#xff1a;53sy 原装出厂W11系统自带网卡、显卡、声卡、蓝牙等所有驱动、出厂时状态主题壁纸、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格…

面试官:你能说说常见的前端加密方法吗?

给大家推荐一个实用面试题库 1、前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;web前端面试题库 前言 本篇文章略微介绍一下前端中常见的加密算法。前端中常见的加密算法主要形式包括——哈希函数&#xff0c;对称…

十八数藏的文化新生:数字创新的非遗保护之光

在数字时代的大舞台上&#xff0c;十八数藏如一颗璀璨的文化新星&#xff0c;以数字创新的光芒点亮着非遗保护的未来。这不仅仅是一次文化的复兴&#xff0c;更是对传统之美的数字赋能&#xff0c;让非遗在新的时代焕发出勃勃生机。 十八数藏通过数字化手段&#xff0c;使得传统…

AppLink定时调度操作

RestCloud AppLink定时调度操作 定时调度可以让我们更加快速了解到数据的变动以作出更好的决策&#xff0c;接下来通过AppLink平台配置定时调度的操作。 1.登录RestCloud AppLink 2.点击授权管理 3.点击应用认证菜单 4.新建拼多多授权认证 基础定时调度配置 1.拉取一个定时器…

Linux CentOS7 添加网卡

一台主机中安装多块网卡&#xff0c;有许多优势。可以实现多项功能。 为了学习网卡参数的设置&#xff0c;可以为主机添加多块网卡。与添加磁盘一样&#xff0c;要在VMware中设置。利用图形化方式或命令行查看或设置网卡。本文仅初步讨论添加、查看与删除网卡&#xff0c;有关…

Go——一、Go语言安装及介绍

Go 一、Windows下安装Go1、下载Go2、配置环境变量3、下载Jetbrain下的GoLang4、编写hello world5、编译和执行 二、Go语言介绍1、开发文档2、Go语言核心开发团队3、为什么要创建Go4、Go语言发展史5、Go语言特点6、Golang执行过程6.1 执行过程分析6.2 编译是什么 7、开发注意事项…

海外IP代理如何助力跨境电商?

黑五作为下半年年度尤为重要的一个节日&#xff0c;是各大商家的必争之地&#xff0c;那么海外代理是如何帮助跨境商家做好店铺管理和营销呢&#xff1f; 为什么跨境人都关注海外代理&#xff0c;下面我们来进行介绍。 一、什么是海外代理 海外代理就是我们所说的&#xff1a…

【数据结构】前言

数据结构是在计算机中维护数据的方式。 数据结构是OI重要的一部分。 同的数据结构各有优劣&#xff0c;能够处理的问题各不相同&#xff0c;而根据具体问题选取合适的数据结构&#xff0c;可以大大提升程序的效率。 所以&#xff0c;学习各种各样的数据结构是很有必要的。 数据…

kernel32.dll丢失都有什么解决办法,帮助大家解决kernel32.dll丢失的问题

kernel32.dll丢失是电脑中常出现的情况&#xff0c;今天就想和大脚聊聊这个kernel32.dll 文件&#xff0c;这个文件它的功能是干什么的&#xff0c;如果电脑中kernel32.dll 丢失都有什么解决办法&#xff0c;帮助大家解决kernel32.dll丢失的问题&#xff0c;本篇文章给大家提供…

汽车CAN/ CAN FD数据记录仪在上汽大通诊断测试部门的应用

CAN/CANFD数据诊断记录仪在 规格&#xff1a;数据记录诊断仪 功能&#xff1a;CAN(FD)数据记录 UDS诊断 WIFI收发报文

Matlab绘制双坐标轴图示例函数yyaxis

一、前言 出于一些需求&#xff0c;我们需要将两个不同属性的参量绘制在同一张图上&#xff0c;但是两个参量属性不同&#xff0c;即单位不同&#xff0c;纵坐标值分布范围不同&#xff0c;此刻&#xff0c;我们只需要将一个参量的值在y轴左侧展示&#xff0c;另一个参量的值在…

【Linux】冯诺依曼体系结构、操作系统、进程概念、进程状态、环境变量、进程地址空间

目录 一、冯诺依曼体系结构二、操作系统(OS)1. 操作系统是什么2. 操作系统如何做管理3. 系统调用和库函数概念 三、进程1. 进程是什么&#xff1f;2. 描述进程-PCB3. 查看进程的方法 四、进程状态1 运行、阻塞和挂起状态2 Linux中的进程状态 五、进程优先级1. 什么是优先级2.查…

仅从个人的角度,聊聊年底的程序员招聘与入职情况

Hello&#xff0c;大家好&#xff0c;我是 Sunday。 一般到了年底&#xff0c;招聘的 HC 都会大规模的缩减。特别是在今年这样的一个行情之下&#xff0c;很多公司因为不确定明年的项目情况&#xff0c;都会开始大规模的停止招聘甚至是开始裁员。 所以&#xff0c;从理论上来…

2023第十七届中国品牌节 | 每日互动刘宇分享大模型创新应用AITA智选人群工具

11月18日-20日&#xff0c;2023第十七届中国品牌节在杭州市云栖小镇国际会展中心盛大举行。本次活动以“复苏与腾飞”为主题&#xff0c;来自政、商、产、学、媒等各界嘉宾6000余位济济一堂&#xff0c;共同见证民族品牌的崛起&#xff0c;携手奉献一场史无前例的“品牌人的亚运…

亚马逊防关联如何做?看这一篇就够了

我们都知道亚马逊在众多跨境电商平台里属于严格的那个&#xff0c;商家们常常调侃亚马逊死法千万种&#xff0c;但最惨的还是账户被平台关联封号。有的新手刚注册还没开始就被关联封号了&#xff0c;有的业绩不错的店铺操作没注意&#xff0c;在别的地方登录了一下就被封了&…

【Flink】核心概念:任务槽(Task Slots)

任务槽 每个 worker&#xff08;TaskManager&#xff09;都是一个 JVM 进程&#xff0c;可以在单独的线程中执行一个或多个 subtask。为了控制一个 TaskManager 中接受多少个 task&#xff0c;就有了所谓的 task slots&#xff08;至少一个&#xff09;。 每个任务槽&#xf…

MongoDB随记

MongoDB 1、简单介绍2、基本术语3、shard分片概述背景架构路由功能chunk&#xff08;数据分片&#xff09;shard key&#xff08;分片键值&#xff09; 4、常用命令 1、简单介绍 MongoDB是一个分布式文件存储的数据库&#xff0c;介于关系数据库和非关系数据库之间&#xff0c…