当前位置: 首页 > news >正文

MATLAB中mapminmax函数用法

目录

语法

说明

示例

使用 mapminmax 函数格式化矩阵


        mapminmax函数的功能是通过将行最小值和最大值映射到 [-1 1] 来处理矩阵。

语法

[Y,PS] = mapminmax(X,YMIN,YMAX)
[Y,PS] = mapminmax(X,FP)
Y = mapminmax('apply',X,PS)
X = mapminmax('reverse',Y,PS)
dx_dy = mapminmax('dx_dy',X,Y,PS)

说明

提示

        要重新缩放深度学习工作流的数据,请对输入层使用归一化名称-值对组。

[Y,PS] = mapminmax(X,YMIN,YMAX) 接受一个 N×Q 矩阵 X 以及(可选)Y 的每行的最小值 YMIN 和最大值 YMAX,并返回一个 N×Q 矩阵 Y 以及允许一致处理值的处理设置 PS。

mapminmax 通过将每行的最小值和最大值归一化为 [YMIN, YMAX] 来处理矩阵。

[Y,PS] = mapminmax(X,FP) 接受结构体形式的参数:FP.ymin、FP.ymax。

        在给定 X 和设置 PS 的情况下,Y = mapminmax('apply',X,PS) 返回 Y。

        在给定 Y 和设置 PS 的情况下,X = mapminmax('reverse',Y,PS) 返回 X。

dx_dy = mapminmax('dx_dy',X,Y,PS) 返回反向导数。

示例

使用 mapminmax 函数格式化矩阵

        此示例说明如何格式化矩阵,以便将每行的最小值和最大值映射到默认区间 [-1,+1]。

x1 = [1 2 4; 1 1 1; 3 2 2; 0 0 0]
[y1,PS] = mapminmax(x1)

        接下来,对新值应用相同的处理设置。

x2 = [5 2 3; 1 1 1; 6 7 3; 0 0 0]
y2 = mapminmax('apply',x2,PS)

        反向处理 y1,以再次得到 x1。

x1_again = mapminmax('reverse',y1,PS)

参数说明

X — 输入矩阵

        要处理的矩阵,指定为 N×Q 矩阵。

YMIN — 最小值

        输出矩阵 Y 的每行的最小值,指定为标量。

YMAX — 最大值

        输出矩阵 Y 的每行的最大值,指定为标量。

Y — 输出矩阵

        处理后的矩阵,以 N×Q 矩阵形式返回。

PS — 处理设置

        允许一致处理值的处理设置,以结构体形式返回。

使用 mapminmax 归一化输入和目标

        在训练之前,需要缩放输入和目标,使它们始终落在指定的范围内,这样做通常很有用。函数 mapminmax 可缩放输入和目标,使它们落在 [–1,1] 范围内。以下代码说明如何使用此函数。

[pn,ps] = mapminmax(p);
[tn,ts] = mapminmax(t);
net = train(net,pn,tn);

        矩阵 p 和 t 中给出了原始网络输入和目标。返回的归一化输入和目标 pn 和 tn 都将落在 [–1,1] 区间内。结构体 ps 和 ts 包含设置,在本例中是原始输入和目标的最小值和最大值。训练完网络后,应使用 ps 设置来变换未来应用于网络的任何输入。它们实际上成为了网络的一部分,就像网络的权重和偏置一样。

        如果使用 mapminmax 缩放目标,则网络的输出将被训练为生成 [–1,1] 范围内的输出。要将这些输出转换回用于原始目标的相同单位,请使用设置 ts。以下代码仿真在上述代码中训练的网络,然后将网络输出转换回原始单位。

an = sim(net,pn);
a = mapminmax('reverse',an,ts);

        网络输出 an 对应于归一化目标 tn。未归一化的网络输出 a 与原始目标 t 采用相同的单位。

        如果使用 mapminmax 预处理训练集数据,则每当将经过训练的网络与新输入结合使用时,都应使用存储在设置 ps 中的为训练集计算的最小值和最大值对它们进行预处理。以下代码将一组新输入应用于已经过训练的网络。

pnewn = mapminmax('apply',pnew,ps);
anewn = sim(net,pnewn);
anew = mapminmax('reverse',anewn,ts);

        对于大多数网络,包括 feedforwardnet,这些步骤是自动执行的,因此只需使用 sim 命令。

算法

        假设 X 只有有限个实数值,并且每行的元素都不完全相等。(如果 xmax=xmin 或如果 xmax 或 xmin 是非有限值,则 y=x 且不发生变化。)

y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;

http://www.lryc.cn/news/317338.html

相关文章:

  • 数据结构导航 -- 38篇
  • 前端性能优化 | CDN缓存
  • 【C#语言入门】17. 事件详解(上)
  • Charles无法打开导出的har文件解决方法
  • FFmpeg--FlvPaser源码:解析.flv输出.h264
  • 【项目笔记】java微服务:黑马头条(day02)
  • 每天五分钟计算机视觉:图像数据不足带来的问题和解决办法
  • 手机App防沉迷系统C卷(JavaPythonC++Node.jsC语言)
  • 【WEEK2】学习目标及总结【SpringMVC】【中文版】
  • Git版本工具学习
  • baidu, google和chatgpt -- 翻译对比
  • 高分辨率全球海洋温度和盐度再分析数据Global Ocean Physics Reanalysis(0.083°),并利用matlab读取绘图
  • 微信小程序修改placeholder样式
  • 爬虫案例1
  • 修改表结构
  • Rust 语言中的 into() 方法
  • MinIO权限提升漏洞CVE-2024-24747详细解决办法
  • “我快无聊死了”用英语怎么说?柯桥英语口语学习,成人零基础学外语
  • JS ATM练习案例(复习循环知识)
  • Android 二维码相关(一)
  • 利用tree命令自动保存文件层级结构
  • C++初阶:内存管理
  • vue和react的diff算法源码
  • Coordinate Attention(CVPR 2021)
  • 计算机网络-第4章 网络层(2)
  • 重学SpringBoot3-WebMvcAutoConfiguration类
  • 探索数据结构:深入了解顺序表的奥秘
  • 苍穹外卖学习-----2024/03/010---redis,店铺营业状态设置
  • RUST 每日一省:发布到crates.io
  • String类及其常用方法