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命…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...

【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...