AI 大框架分析基于python之TensorFlow(归一化处理,多类别分类的概率)
AI 大框架分析基于python之TensorFlow(归一化处理,多类别分类的概率)
AI(人工智能)的大框架有很多种,以下是一些常见的AI框架:
TensorFlow:由谷歌开发的开源机器学习框架,支持各种任务,包括图像识别、自然语言处理等。
PyTorch:由Facebook开发的开源深度学习框架,强调动态计算图和易用性。
Keras:一个高级神经网络API,可以在多个底层框架上运行,如TensorFlow和Theano。
Caffe:一个用于图像分类和卷积神经网络的深度学习框架。
Microsoft Cognitive Toolkit(CNTK):由微软开发的深度学习工具包,支持分布式训练和高性能计算。
MXNet:一个可扩展的深度学习框架,可以在多台机器上进行分布式训练。
tf.keras.utils.normalize 是 TensorFlow 中的一个方法,用于对数据进行归一化处理。归一化是一种常用的数据预处理技术,目的是将数据缩放到一个特定的范围内,常见的是将数据缩放到0到1之间。
示例代码:
import tensorflow as tfdata = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32)
normalized_data = tf.keras.utils.normalize(data, axis=-1, order=2)
print(normalized_data)
输出结果:
tf.Tensor(
[[0.26726124 0.5345225 0.80178374][0.4558423 0.5698029 0.68376344]], shape=(2, 3), dtype=float32)
参数说明:
x:输入的张量,可以是任意形状的张量。
axis:指定归一化的轴,默认为最后一个轴(-1),可以是一个整数或一个整数列表。
order:归一化的阶数,默认为2,表示按照L2范数进行归一化,也可以设置为1表示按照L1范数进行归一化。
下面是一个使用tf.keras模块构建和训练一个简单的分类模型的例子:
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
# 构建模型
model = keras.Sequential([layers.Dense(64, activation='relu', input_shape=(784,)),layers.Dense(10, activation='softmax')
])# 编译模型
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 加载数据集
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()# 数据预处理
x_train = x_train.reshape(-1, 784).astype('float32') / 255.0
x_test = x_test.reshape(-1, 784).astype('float32') / 255.0
#MNIST数据集中的图像像素值的范围是0到255,通过将每个像素值除以255,可以将其缩放到0到1之间的范围。这样做有助于提高模型的训练效果和收敛速度。# 模型训练
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_data=(x_test, y_test))# 模型评估
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print('Test accuracy:', test_acc)
ReLU是一种常用的激活函数,它将负输入值设为0,正输入值保持不变。ReLU函数的定义为:f(x) = max(0, x)。
这个例子里面用的是input_shape=(784,)代表它处理的是一个一维数据;如果输入数据是一个大小为3x3的矩阵,可以将input_shape=(3, 3)作为参数传递给相应的层。
在神经网络的每个神经元中,激活函数的作用是引入非线性性,使得神经网络能够更好地拟合非线性关系。ReLU激活函数具有以下优点:
非线性:ReLU对于正输入值保持不变,因此能够学习非线性关系,帮助神经网络拟合复杂的数据。
计算简单:ReLU的计算非常简单,只需要判断输入值是否大于零并保持不变。相比其他激活函数,如sigmoid或tanh函数,ReLU的计算效率更高。
缓解梯度消失:ReLU在正输入值区域梯度为1,避免了梯度消失的问题,使得反向传播时梯度能够有效传递。
在神经网络中,通常在隐藏层中使用ReLU激活函数,而在输出层中根据具体的任务选择不同的激活函数。对于分类问题,常用的输出层激活函数是softmax,对于回归问题,可以使用线性激活函数或不使用激活函数。
对于分类问题中的多类别分类,常用的输出层激活函数是softmax函数。softmax函数是一种将实数向量映射为概率分布的函数。它将每个元素的值转化为一个介于0和1之间的概率,且所有元素的概率之和为1。
softmax函数的定义如下: f(x) = exp(x) / sum(exp(x_i)) for i in range(n)
其中,x是输入向量,n是向量的维度。
在多类别分类问题中,输出层通常具有与类别数相等的神经元。通过使用softmax激活函数,神经网络可以将输入的实数值转换为表示每个类别的概率分布。模型将预测的概率最大的类别作为最终的分类结果。
例如,对于一个具有3个类别的分类问题,输出层使用了softmax激活函数后,输出的向量可以表示为 [0.2, 0.5, 0.3],其中每个元素的值表示对应类别的概率。
model.compile(optimizer=‘adam’, loss=‘sparse_categorical_crossentropy’, metrics=[‘accuracy’])这行代码是用于编译神经网络模型的函数调用,其中的三个参数分别是optimizer、loss和metrics。
optimizer(优化器)参数指定了用于优化模型参数的算法。'adam’是一种常用的优化器,它基于随机梯度下降算法,并结合了动量和自适应学习率的技巧。Adam优化器可以在训练过程中自动调整学习率,具有较快的训练速度和良好的收敛性。
loss(损失函数)参数指定了模型在训练过程中使用的损失函数。'sparse_categorical_crossentropy’是一种常用的损失函数,适用于多类别分类问题。它计算模型预测结果与真实标签之间的交叉熵损失,帮助模型学习正确的类别概率分布。
metrics(评估指标)参数指定了模型在训练和测试过程中需要计算和报告的性能指标。[‘accuracy’]表示模型将计算并报告准确率作为评估指标。准确率是分类问题中常用的评估指标,它表示模型在所有预测中正确分类的样本比例。
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_data=(x_test, y_test))是用于训练神经网络模型的函数调用。下面是对其中各个参数的详细解释:
x_train:训练集的输入数据。它是一个形状为(n_samples, n_features)的NumPy数组,其中n_samples表示训练样本的数量,n_features表示每个样本的特征数量。
y_train:训练集的标签数据。它是一个形状为(n_samples,)的NumPy数组,其中n_samples表示训练样本的数量。标签数据用于指示每个训练样本的真实类别或目标值。
epochs:训练的轮数。一个轮次(epoch)表示模型使用整个训练集进行一次前向传播和反向传播的过程。通过指定轮次数,可以控制模型训练的总次数。
batch_size:批大小。它指定了每次进行参数更新时使用的训练样本数量。将训练集分成多个批次可以加快训练过程,并且可以利用硬件加速的特性。
validation_data:验证数据。它是一个元组(x_val, y_val),其中x_val是用于验证模型性能的输入数据,y_val是对应的标签数据。在每个训练轮次结束后,模型将使用验证数据计算并报告验证指标,例如准确率或损失值。
verbose是用于控制输出信息的参数。
参数verbose有三个可能的取值:
verbose=0:不输出任何信息。
verbose=1:输出进度条,显示每个epoch的训练进度。
verbose=2:显示每个epoch的训练进度,并额外显示每个epoch结束后的评估指标。
相关文章:
AI 大框架分析基于python之TensorFlow(归一化处理,多类别分类的概率)
AI 大框架分析基于python之TensorFlow(归一化处理,多类别分类的概率) AI(人工智能)的大框架有很多种,以下是一些常见的AI框架: TensorFlow:由谷歌开发的开源机器学习框架,支持各种任务,包括图像…...
C++day01(QT简介、C++)
今日任务: 代码: #include <iostream>using namespace std;int main() {/** 输入字符串统计大写、小写、数字、空格以及其他字符的个数**/string s;cout << "请输入一个字符串" << endl;//cin >> s;getline(cin,s);i…...
Web server failed to start. Port 8080 was already in use
一、问题 package com.djc.boot;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annota…...
new和malloc的区别
new 和 malloc 都是在 C 中用于动态分配内存的方式,但它们之间有一些重要的区别 对象类型的区别: new:new 是 C 的关键字,用于动态分配对象。它可以调用对象的构造函数进行初始化,并返回指向所分配对象的指针。mallo…...
python:openpyxl 读取 Excel文件,显示在 wx.grid 表格中
pip install openpyxl openpyxl-3.1.2-py2.py3-none-any.whl (249 kB) et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB) 摘要:A Python library to read/write Excel 2010 xlsx/xlsm files pip install wxpython4.2 wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 M…...
12P2532X152 KJ3222X1-BA1 CE4003S2B1 EMERSON DELTAV
12P2532X152 KJ3222X1-BA1 CE4003S2B1 EMERSON DELTAV 除了标准的实时计算、通信和控制,边缘设备和关键网络应用的fog通常执行人工智能(AI)、虚拟现实(VR)和增强现实(AR)解决方案。 目前,制药商和医疗保健机构对它们的需求快速增长,因为它们…...
P1014 [NOIP1999 普及组] Cantor 表
#include <bits/stdc.h> using namespace std; int main() {int n,k1;cin>>n;while (n>k) {nn-k;k;}if(k%20) cout<<n<<"/"<<(k1-n);else cout<<k1-n<<"/"<<n;return 0; }...
JMeter性能分析实战一:日常登录接口
负载测试 日常需求:负载测试! 对于桥的负载测试:我给你20t的一排车辆,看你能不能撑得住20t! 对于系统的负载测试: 逐步增加负载,便于问题的发现和定位,不要操之过急。逐步增加负载…...
内外网结合的多服务发布架构
1. 需求 1)有多个独立的web服务需要对外发布。 2)有AIGC的大模型服务需要在内网图形工作站上运行,也需要对外发布接口。 3)所有服务需要通过域名访问。 2. 现有资源 1)阿里云上的ECS云服务器一台,考虑…...
Unity中Shader的光照模型Lambert
文章目录 前言一、Lambert光照模型1、公式可以使用图形计算器来看出这个点积对于结果的影响 前言 Unity中Shader的光照模型Lambert 一、Lambert光照模型 1、公式 A:可以理解为环境光的颜色 K:反射系数 LC:主要的入射光的颜色 N:…...
(一)Log4Net - 介绍
0、相关概念 Log4j 几乎每个大型应用程序都包含自己的日志记录或跟踪 API。根据这一规则,E.U. SEMPER 🌹项目决定编写自己的跟踪 API。那是在 1996 年初。经过无数次的增强、几个化身和大量的工作,API 已经发展成为 log4j —— 一个流行的 Ja…...
[bug] mysql 时间与本地不一致
通过 select now() 查询到的时间比本机少了8个小时。 show variables like %time_zone%; //查询当前时区set global time_zone8:00; //在标准时区上加8小时,即东8区时间flush privileges; # 立即生效...
【改造先序遍历】222. 完全二叉树的节点个数
222. 完全二叉树的节点个数 解题思路-先序 直接改造先序遍历算法针对一个节点 如果节点为空 那么直接返回0其余交给递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* …...
windows文件和目录相关命令
目录 dir:用于浏览当前文件夹的内容。 cd:用于更改所在的工作目录。 md:用于创建一个新的目录。 rd:用于删除文件夹,如果不加/s参数的话只能删除空目录。 echo:用于输出一段文本信息。 type࿱…...
TL-ER3220G端口映射设置
1、打开IE浏览器或其它浏览器,在地址栏输入192.168.1.1登录路由器的Web管理界面; 2、打开后弹出密码输入框,输入路由器的用户名和密码,出厂默认值为admin/admin,成功登录后将看到路由器的系统状态信息; 3、…...
MySQL Cluster
文章目录 1.简介2.组成参考文献 1.简介 MySQL Cluster 是官方推出的基于 NDB(Network DataBase)存储引擎的高可用和可伸缩的分布式数据库系统。 以下是 MySQL NDB Cluster 的主要特点和能力: 高可用:MySQL Cluster 具有内置的高…...
Spring封装的原生WebSocket使用,带组的实现
前言 为了和TIO来进行对比websocket的简易程度,我这篇就是写一下Spring原生的webSocket的正常操作 拿来对比就可以说说优劣性 正文 首先还是导入原生依赖,这里不需要写版本号 <dependency><groupId>org.springframework.boot</groupId><artifactId>spr…...
Linux高性能服务器编程 学习笔记 第十一章 定时器
网络程序需要处理定时事件,如定期检测一个客户连接的活动状态。服务器进程通常管理着众多定时事件,有效地组织这些定时事件,使其在预期的时间被触发且不影响服务器的主要逻辑,对于服务器的性能有至关重要的影响。为此,…...
jenkins拉取git代码 code 128解决方案
jenkins拉取git代码 code 128解决方案 处理方案: 先检查一下自己的账号正常是否有权限(如账号正常有权限请看第二步)找到Jenkins工作目录,重命名caches文件夹(或直接删除caches内的所有内容) # 进入到jenkins目录(注意…...
【Linux】 ls命令使用
ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。 ls命令 -Linux手册页 著者 由Richard M.Stallman和David MacKenzie撰写。 语法 ls [-alrtAFR] [name...] ls命…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
