TensorFlow-keras介绍(一)

news2024/11/13 14:26:24

目录

一.回顾神经网络

1.神经网络

2.感知机

3.神经网络原理

1.softmax回归

2.交叉熵

二.Keras介绍

1.Keras框架的特点

2.使用tf.keras进行模型构建

1.使用Sequential构建模型

2.利用keras提供的API建立较为复杂的模型

3.model的子类进行创建

 都看到这里了,点个赞把!!!


一.回顾神经网络

1.神经网络

人工神经网络( Artificial Neural Network, 简写为ANN)也简称为神经网络(NN)。是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)结构和功能的 计算模型。经典的神经网络结构包含三个层次的神经网络。分别输入层,输出层以及隐藏层。

其中没层的圆圈代表一个神经元,隐藏层和输出层的神经元由输入的数据计算后输出,输入层的神经元只有输入。

神经网络特点:1.每个连接都有一个权值,2.同一层神经元之间没用连接,3.最后的输出结果对应的层也叫全连接层

2.感知机

感知机是模拟大脑神经网络处理数据的过程,每个数据计算权重加上偏置后在经过一个函数处理

3.神经网络原理

神经网络的主要用途在于分类,分类又分为二分类和多分类。

神经网络在解决多分类问题最常用的方法是设置n个节点,其中n为类别个数

任何事件发生的概率都在0和1之间,且总又某一个事件发生。如果将分类问题中的"一个样例属于一个某一个类别"看成一个概率事件,那么训练数据的正确答案就符合一个概率分布,如何将神经网络向前传播得到的结果也变成了概率分布 ?Softmax回归就是一个常用的方法

1.softmax回归

Softmax回归将神经网络输出转换成概率结果,数据结果权重和偏置计算后,softmax函数会将所有的结果当作e的指数后作为分母,分子是一个结果当成e的指数的值,那么所有结果都转换成了0-1之间的值,也就是概率

 这样就把神经网络的输出变成一个概率输出了,那么如何计算神经网络计算的结果和真实结果之间的误差呢?

2.交叉熵

 为了衡量距离,目标值需要进行one-bot编码(比如又十个类别,而这个结果是第五个类别,那么编码后就是[0,0,0,0,1,0,0,0,0,0]),能与概率值一一对应

 那么带入公式后的损失就是:

0log(0.10)+0log(0.05)+0log(0.15)+0log(0.10)+0log(0.05)+0log(0.20)+1log(0.10)+0log(0.05)+0log(0.10)+0log(0.10)

 因为除了这个样本所属的类别结果为1以外,其他的结果都为0。所有损失为1*log(0.10),那么为了减少这个损失,需要将这个值变小,也就是将log中的0.10变大,也就是训练的时候将这个概率变大的情况来训练权重和偏置。从而提高目标值为1的位置的概率大小

二.Keras介绍

Keras是一个用python编写的开源神经库,能够运行在TensorFlow,Micsrosoft, Toolkit,Theano或PlaidML之上,kerea是单独是深度学习框架,一些代码用到了Tnesorflow的API,但在TensorFlow1.9新增加了tf.kerea。Keras与TF的深度集成。

1.Keras框架的特点

1.用户友好:keras提供了简洁,一致的API,使用户可以轻松定义,训练,评估深度学习模型,无论是初学者还是经验丰富的研究人员都可以轻松入手。

2.模块化和可组合性:Keras通过模块化的方式组织深度学习模型,用户可以根据自己的需求选择不同的层、激活函数、优化器等组件,并简单地将它们组合在一起构建复杂的模型。

3.支持多种深度学习库:Keras可以基于多种底层深度学习库进行计算,包括TensorFlow、Theano和CNTK。这使得用户可以根据自己的偏好和需求选择底层库,并无缝地切换。

4.丰富的文档和社区支持:Keras拥有丰富的文档和活跃的社区,用户可以轻松找到各种教程、示例代码和解决方案,以及与其他用户交流和讨论。

2.使用tf.keras进行模型构建

1.简单模型使用Sequential进行构建

2.复杂模型使用函数式变形构建

3.自定义Layers(model的子类)构建

1.使用Sequential构建模型

tf。keras是一个神经网络库,我们可以用它构建相应的神经网络。其中简单的神经网络如人工神经网络ANN这样简单的模型,可以用Sequential构建

tf.keras.Sequenial模型是层的线性推叠,它的构造函数会采用一系列层实例:

如图所示,可以构造2个隐层,没层五个神经元。一个输出层,包括4个预测点。

 Dense用来创建层和没层的神经元个数

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras import utils
from tensorflow.keras.layers import Dense

model=Sequential([
    # 第一个隐层层,5个神经元,使用rule函数,input_shape是数据形状
    Dense(5,activation="rule",input_shape=(3,)),
    # 第二个隐藏层
    Dense(5,activation='rule'),
    # 输出层,4个分类激活函数使用softmax
    Dense(4,activation='softmax')
],
    # 为这个取一个名字
    name='notwork'
)

model.summary()

# 这个函数将画出模型结构图并保存图片,
# to_file:保存路径,show_shapes:指定是否显示数据的形状,默认为False,show_layer_names:指定是否显示层名称默认为True
utils.plot_model(model, to_file='model.png', show_shapes=True, show_dtype=True,show_layer_names=True)

2.利用keras提供的API建立较为复杂的模型

 

import tensorflow as tf
from tensorflow.keras import keras
from tensorflow.keras.layers import layers

# 定义模型的数据输入
Input_Layer=keras.Input(shape=(3,),name="input_1")
# 第一个隐藏层
X1=layers.Dense(5,activation='relu',name='Layer1')(Input_Layer)
# 第二个隐藏层
X2=layers.Dense(5,activation='relu',name='Layer2')(X1)

# 输出层
Output_Layer = layers.Dense(4, activation ="softmax", name="Output")(X2)

# 创建模型
model=keras.Model(inputs=Input_Layer,outputs=Output_Layer,name="Model_1")

model.summary()
3.model的子类进行创建

 通过model的子类构建模型,在__init__中定义神经网络的层,在call方法中一定网络的向前传播方法。

import tensorflow as tf
import tensorflow.keras as keras
import tensorflow.keras.layers as layers


class My_Models(keras.Model):
    # 定义网络层结构
    def __init__(self):
        super(My_Models, self).__init__()
        # 第一个隐藏层
        self.layer1 = layers.Dense(5, activation="relu", name="Layer1")
        # 第二个隐藏层
        self.layer2 = layers.Dense(5, activation="relu", name="Layer2")
        # 定义输出层
        self.output_layer = layers.Dense(4, activation="softmax", name="Output")

    # 定义网络的前向传播
    def __call__(self, inputs):
        x = self.layer1(inputs)
        x = self.layer2(x)
        outputs = self.output_layer(x)
        return outputs


# 实例化
model1 = My_Models()
# 设置输入
x = tf.ones((1, 4))
y = model1(x)

 都看到这里了,点个赞把!!!

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

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

相关文章

软件测试最新项目合集【商城、外卖、银行、金融等等.......】

项目一:ShopNC商城 项目概况: ShopNC商城是一个电子商务B2C电商平台系统,功能强大,安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城,系统PC后台是基于ThinkPHP MVC构架开发的跨…

MySQL基础:索引

💎所属专栏:MySQL 1. 索引概述 MySQL中的索引是帮助MySQL高效获取数据的数据结构,可以极大地提高数据库的查询效率,减少数据库的I/O成本,就像书的目录一样,它可以帮助我们快速定位到书中的内容。 优势&…

《深入理解JAVA虚拟机(第2版)》- 第8章 - 学习笔记

第8章 虚拟机字节码执行引擎 8.1 概述 执行引擎是Java虚拟机最为核心的组成部分之一。在不同的虚拟机里面,执行引擎在执行Java代码的时候可能会有解释执行(通过解释器执行)和编译执行(通过即时编译器生成本地代码执行&#xff0…

监控平台之nodejs模拟后端接口

github:可以下载进行实验 https://github.com/Mr-Shi-root/sdk-platform/tree/master 1.配置node环境,安装express cors body-parser babel/cors body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。cookie-parse…

光伏清洁机器人4G之痛,LoRa通讯取而代之?

光伏清洁机器人是一种专门用于清洁光伏组件(太阳能电池板)的自动化机器人。通过自主或者远程控制自动清洁光伏板上的尘土、鸟粪、树叶等污染物,在提升清洁效果的同时提高光伏电站的发电效率。然而,面对偏远无人区的孤岛效应及复杂…

交友系统“陌陌”全方位解析

交友系统在现代社会中扮演着越来越重要的角色,尤其是随着互联网技术的发展,各种交友软件层出不穷。陌陌作为其中的佼佼者,其全方位解析对于理解交友系统的商业开发至关重要。 陌陌的核心功能是提供基于地理位置的社交服务,用户可…

MES生产制造执行系统源码,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验。

企业需要MES生产制造执行系统来提供实现从订单下达到完成品的生产活动优化所得信息,并运用及时准确的数据,指导、启动、响应并记录车间生产活动,对生产条件的变化做出迅速的响应,减少非增值活动,提高效率,为…

# 利刃出鞘_Tomcat 核心原理解析(十)-- Tomcat 性能调优--1

利刃出鞘_Tomcat 核心原理解析(十)-- Tomcat 性能调优–1 一、Tomcat专题 - Tomcat性能调优 - 性能测试 1、tomcat 性能测试: 对于系统性能,用户最直观的感受就是系统的加载和操作时间,即用户执行某项操作的耗时。从…

SketchUp Pro 2024 for Mac/Win:专业3D建模软件的卓越之选

SketchUp Pro 2024作为一款在业界广受好评的三维建模软件,不仅适用于Mac系统,也完美兼容Windows平台,为用户提供了跨平台的强大建模能力。该软件以其直观易用的界面设计著称,无论是初学者还是资深设计师,都能迅速上手并…

介绍冯诺依曼体系结构和操作系统

🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1. 冯诺依曼体系结构2. 操作系统(O…

【数据结构取经之路】位图全解

目录 前言 C标准库里的位图 位图的设计及实现 位图几个关键接口的实现 set() reset() test() 完整代码 位图的使用场景 位图的优缺点 位图的使用演示 —— 几道面试题的讲解 前言 位图(Bitmap)是一种非常高效的数据结构,主要用于处…

Claude Enterprise:Anthropic 推出企业级AI助手挑战OpenAI

Anthropic公司推出了Claude Enterprise,这是一项新的企业级AI服务,旨在提供更安全、更可控的AI聊天机器人体验。通过这个服务,企业可以将内部知识库与Claude机器人连接,使其能够访问和分析公司数据,从而回答员工的查询…

【MySQL】MySQL Workbench下载安装、环境变量配置、基本MySQL语句、新建Connection

1.MySQL Workbench 下载安装: 进入网址:MySQL :: MySQL Workbench Manual :: 2 Installation (1)点击“MySQL Workbench on Windows”(下载Windows版本)(2)点击“Installing” &…

前端Vue框架,本地数据库nedb

封装 db.js(文章nedb版本^1.8.0) // db.js// 导入 NeDB 模块 const Datastore require(nedb)// 创建数据库实例,最大600M或100W行 const db new Datastore({ filename: ./database.db, autoload: true, inMemoryOnly: false, maxFileSize: 600 * 1024…

如何将 Redshift Cryptomatte AOV 与 teamrender 结合使用,成都渲染101云渲染

这篇文章将讨论在 Cinema 4D 中将 cryptomatte AOV 与 teamrender 结合使用时常见的问题和解决方案。在 Cinema 4D 中使用 AOV 时,用户希望它们的工作方式与其他 AOV 完全相同。但事实并非如此,尤其是与 teamrender 结合使用时。 在 Cinema 4D 中&#x…

【JAVA高级】并发同步工具CyclicBarrier 的使用介绍

📝个人主页🌹:个人主页 ⏩收录专栏⏪:JAVA进阶 🌹🌹期待您的关注 🌹🌹,让我们共同进步! 文章目录 CyclicBarrier 简介CyclicBarrier 的场景示意图&#xff1…

AI绘画时代的自媒体引流攻略:如何实现粉丝暴涨与盈利

一、AI绘画在自媒体引流和赚钱中的应用 创作独特视觉内容,吸引粉丝关注 AI绘画技术可以帮助自媒体从业者创作出独一无二的视觉内容,这些内容在社交媒体上具有很高的辨识度和吸引力。通过以下方式,AI绘画助力引流和赚钱: &#xf…

软件厂商与集成平台协同--打造无缝企业解决方案

引言 在现在的众多项目当中,很多企业面临着日益复杂的业务需求和不断变化的市场环境。为了保持竞争力,企业会选择采用高效的工具和系统来管理和运营。CRM(客户关系管理)软件和ERP(企业资源规划)系统是企业…

PMF源解析软件下载、安装、运行;Fpeak模式运行结果优化及误差评估;大气颗粒物理化性质等基础知识和通过PMF方法对其来源解析

目录 专题一 PMF源解析技术简要及其输入文件准备 专题二 PMF源解析技术的原理,PMF软件的实操及应用举例 专题三 PMF源解析结果的优化及误差评估 更多应用 颗粒物污染不仅对气候和环境有重要影响,而且对人体健康有严重损害,尤其在一些重污…

计算机毕设选题推荐-基于python的校园班级课程表管理系统

💖🔥作者主页:毕设木哥 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 实战项目 文章目录 实战项目 一、基于python的校园班级课程表…