Python深度学习实战-基于class类搭建BP神经网络实现分类任务(附源码和实现效果)

实现功能

上篇文章介绍了用Squential搭建BP神经网络,Squential可以搭建出上层输出就是下层输入的顺序神经网络结构,无法搭出一些带有跳连的非顺序网络结构,这个时候我们可以选择类class搭建封装神经网络结构。

  1. 第一步:import tensorflow as tf:导入模块

  2. 第二步:制定输入网络的训练集和测试集

  3. 第三步:搭建网络结构

  4. 第四步:model.compile():配置训练方法

  5. 第五步:model.fit():执行训练过程

  6. 第六步:model.summary():打印网络结构

实现代码

import tensorflow as tf
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScalerclass NeuralNetwork(tf.keras.Model):def __init__(self, input_size, hidden_size, output_size):super(NeuralNetwork, self).__init__()self.dense1 = tf.keras.layers.Dense(hidden_size, activation='relu')self.dense2 = tf.keras.layers.Dense(hidden_size, activation='relu')self.dense3 = tf.keras.layers.Dense(output_size, activation='softmax')def call(self, inputs):x = self.dense1(inputs)x = self.dense2(x)x = self.dense3(x)return x
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target# 数据预处理
scaler = StandardScaler()
X = scaler.fit_transform(X)# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建模型实例
input_size = X.shape[1]
hidden_size = 64
output_size = len(set(y))
model = NeuralNetwork(input_size, hidden_size, output_size)# 编译模型
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 训练模型
model.fit(X_train, y_train, epochs=10, batch_size=32)
model.summary()# 评估模型
test_loss, test_accuracy = model.evaluate(X_test, y_test)

实现效果

本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据挖掘相关科研工作,对数据挖掘有一定认知和理解,会结合自身科研实践经历不定期分享关于python、机器学习、深度学习基础知识与案例。

致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。

邀请三个朋友关注V订阅号:数据杂坛,即可在后台联系我获取相关数据集和源码,送有关数据分析、数据挖掘、机器学习、深度学习相关的电子书籍。

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

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

相关文章

基于情感词典的情感分析方法

计算用户情绪强弱性,对于每一个文本都可以得到一个情感分值,以情感分值的正负性表示情感极性,大于0为积极情绪,小于0反之,绝对值越大情绪越强烈。 基于情感词典的情感分析方法主要思路: 1、对文本进行分词…

影响光源的因素

影响光源的因素 对比度 1.对比度 均匀性 2.均匀性 色彩还原性 3.色彩还原性 其他因素: 4. 亮度 : 光源 亮度是光源选择时的重要参考,尽量选择亮度高的光源。 5. 鲁棒性 : 鲁棒性是指光源是否对部件的位置敏感度最小 。 6. 光…

不同设备的请求头信息UserAgent,Headers

一、电脑端 【设备名称】:电脑 Win10 【应用名称】:win10 Edge 【浏览器信息】:名称:(Chrome);版本:(70.0) 【请求头信息】:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Ch…

easyExcel按模板填充数据,处理模板列表合并问题等,并导出为html,pdf,png等格式文件demo

1.工具类 /*** excle模板填充并转换html* * @param response 返回* @param order 主体内容* @param goods 配件列表* @param pro 项目列表* @throws IOException*/public static void moudleExcleToHtml(HttpServletResponse response, String moudleUrl, Object o…

点云从入门到精通技术详解100篇-基于尺度统一的三维激光点云与高清影像配准(续)

目录 以三维激光点云为基准的影像点云尺度估计 3.1 基于 Scale ratio ICP 的尺度估计 3.1.1 Spin image 介绍

企业如何安全跨国传输30T文件数据

对于一些对数据敏感性比较高的企业,如IT企业和国企等,跨国数据传输是当今企业面临的一个重要挑战,尤其是当数据量达到30T这样的规模时,如何保证数据的速度、安全和合规性,就成为了企业必须考虑的问题。本文将从以下几个…

【Java题】输出基本数据类型的最大值和最小值,以及float和double的正无穷大值和负无穷大值

一:代码 public class Test {public static void main(String[] args) {//输出byte型的最大值与最小值System.out.println(Byte.MAX_VALUE);System.out.println(Byte.MIN_VALUE);//输出short型的最大值与最小值System.out.println(Short.MAX_VALUE);System.out.pri…

RTE(Runtime Environment)

RTE(Runtime Environment)是一个运行时环境,在这个环境里,你可以实现的功能是: 作为一个缓冲buffer给应用层和BSW层的接口(例如COM)用来存储数据,也就是说定义一个全局变量供上层和下…

Django实战项目-学习任务系统-任务管理

接着上期代码框架,开发第3个功能,任务管理,再增加一个学习任务表,用来记录发布的学习任务的标题和内容,预计完成天数,奖励积分和任务状态等信息。 第一步:编写第三个功能-任务管理 1&#xff0…

go-kit中如何开启websocket服务

在Go-Kit中,可以使用github.com/go-kit/kit/transport/http包来开启WebSocket服务。以下是一个简单的示例代码,演示了如何在Go-Kit中开启WebSocket服务: package mainimport ("context""fmt""net/http""…

二、BurpSuite Decoder解码器

一、编码解码 解释:BurpSuite 可以用这个模块来轻松进行编码解码,下面是支持的类型 URL HTML Base64 ASCIIhex Hex Octal Binary Gzip 注意:特别注意的是URL编码,一般的在线网站都无法对比如‘abc’的文本编码,burps…

目标检测及锚框、IoU

1. 目标检测 物体检测(目标检测)是计算机视觉和数字图像处理的热门方向,意在判断一幅图像上是否存在感兴趣物体,并给出物体分类及位置等(What and Where)。本文主要进行物体检测研究背景、发展脉络、相关算…

nginx 配置错误目录遍历漏洞

nginx 是一款高性能的 web 服务器,使用非常广泛,其不仅经常被用作反向代理 在 nginx 中开启 autoindex,配置不规范而造成目录遍历漏洞 配置如下: server { listen 80; server_name *.*.*.*; index index.htm index.html; root …

c语言基础:L1-059 敲笨钟

微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰&…

禁止chrome浏览器更新方式

1、禁用更新服务 WinR调出运行,输入services.msc,进入服务。 在服务中有两个带有Google Update字样,双击打开后禁用,并把恢复选项设置为无操作。 2、删除计划任务 运行taskschd.msc,打开计划任务程序库,在…

SDRAM学习笔记(MT48LC16M16A2,w9812g6kh)

一、基本知识 SDRAM : 即同步动态随机存储器(Synchronous Dynamic Random Access Memory), 同步是指其时钟频率与对应控制器(CPU/FPGA)的系统时钟频率相同,并且内部命令 的发送与数据传输都是以该时钟为基准&#xff…

【C#】LIMS实验室信息管理系统源码

一、系统概述 LIMS(Laboratory Information Management System)即实验室信息管理系统,是通过对样品检验流程、分析数据及报告、实验室资源和客户信息等要素的综合管理,按照标准化实验室管理规范,建立符合实验室业务流程的质量体系,实现实验室信息化管理。是实验室提高分析水平…

CSS 滚动驱动动画与 @keyframes 新语法

CSS 滚动驱动动画与 keyframes 在 CSS 滚动驱动动画相关的属性出来之后, keyframes 也迎来变化. 以前, keyframes 的值可以是 from, to, 或者百分数. 现在它多了一种属性的值 <timeline-range-name> <percentage> 建议先了解 animation-range 不然你会对 timeli…

[RISC-V]verilog

小明教IC-1天学会verilog(7)_哔哩哔哩_bilibili task不可综合&#xff0c;function可以综合

4+非肿瘤纯生信。氧化应激+WGCNA+药物预测筛序关键基因

今天给同学们分享一篇非肿瘤氧化应激WGCNA的生信文章“Identification of oxidative stress-related biomarkers associated with the development of acute-on-chronic liver failure using bioinformatics”&#xff0c;这篇文章于2023年10月10日发表在Scientific Reports期刊…