构造半精度数值对象 -凯发官方首页
构造半精度数值对象
自 r2018b 起
说明
使用 half
构造函数将半精度数据类型分配给数字或变量。半精度数据类型占用 16 位内存,但其浮点表示使其能够处理比相同大小的整数或定点数据类型更宽的动态范围。有关详细信息,请参阅和 。
有关支持使用半精度输入的代码生成的函数列表,请参阅。
创建对象
输入参数
v
— 输入数组
标量 | 向量 | 矩阵 | 多维数组
输入数组,指定为标量、向量、矩阵或多维数组。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
复数支持: 是
对象函数
在 matlab® 中,使用半精度输入的仿真支持这些函数。matlab system object™ 支持半精度数据类型,而 模块支持具有实数值的半精度数据类型。有关支持使用半精度输入的代码生成的函数列表,请参阅。
数学和算术
绝对值和复数的模 | |
反余弦(以弧度为单位) | |
反双曲余弦 | |
反正弦(以弧度为单位) | |
反双曲正弦 | |
反正切(以弧度为单位) | |
四象限反正切 | |
反双曲正切 | |
向正无穷舍入 | |
复共轭 | |
卷积和多项式乘法 | |
二维卷积 | |
以弧度为单位的参数的余弦 | |
双曲余弦 | |
准确计算 cos(x*pi) | |
累积和 | |
点积 | |
指数 | |
针对较小的 x 值正确计算 exp(x)-1 | |
快速傅里叶变换 | |
二维快速傅里叶变换 | |
n 维快速傅里叶变换 | |
将零频分量移到频谱中心 | |
向零舍入 | |
向负无穷舍入 | |
multiply and add using fused multiply add approach | |
平方和的平方根(斜边) | |
快速傅里叶逆变换 | |
二维快速傅里叶逆变换 | |
多维快速傅里叶逆变换 | |
逆零频平移 | |
复数的虚部 | |
数组左除 | |
自然对数 | |
常用对数(以 10 为底) | |
针对较小的 x 值正确计算 log(1 x) | |
以 2 为底的对数和浮点数分解 | |
数组的均值 | |
减法 | |
求解关于 x 的线性方程组 ax = b | |
除后的余数(取模运算) | |
求解关于 x 的线性方程组 xa = b | |
矩阵乘法 | |
添加数字,追加字符串 | |
以 10 为底的幂和缩放半精度数 | |
浮点数的以 2 为底的幂运算和缩放 | |
按元素求幂 | |
数组元素的乘积 | |
数组右除 | |
复数的实部 | |
除后的余数 | |
舍入至最近的小数或整数 | |
reciprocal square root | |
sign 函数(符号函数) | |
参数的正弦,以弧度为单位 | |
双曲正弦 | |
准确地计算 sin(x*pi) | |
平方根 | |
数组元素总和 | |
以弧度表示的参数的正切 | |
双曲正切 | |
乘法 | |
一元减法 | |
一元加法 |
数据类型
determine if all array elements are finite | |
determine if any array element is nan | |
将变量转换为不同的数据类型 | |
元胞数组 | |
双精度数组 | |
浮点相对精度 | |
浮点格式的最大连续整数 | |
创建所有值均为 inf 的数组 | |
16 位有符号整数数组 | |
32 位有符号整数数组 | |
64 位有符号整数数组 | |
8 位有符号整数数组 | |
确定输入是否具有指定数据类型 | |
确定输入是否为浮点数据类型 | |
确定输入是否为整数数组 | |
确定输入是否为逻辑数组 | |
确定哪些数组元素为 nan | |
确定输入是否为数值数组 | |
确定输入是否为 matlab 对象 | |
确定数组是否使用复数存储 | |
将数值转换为逻辑值 | |
创建所有值均为 nan 的数组 | |
最大的正浮点数 | |
最小标准浮点数 | |
单精度数组 | |
stored integer value of fi object | |
在不更改基础数据的情况下转换数据类型 | |
16 位无符号整数数组 | |
32 位无符号整数数组 | |
64 位无符号整数数组 | |
8 位无符号整数数组 |
关系和逻辑运算符
确定所有的数组元素是为非零还是 true | |
计算逻辑 and | |
具有短路功能的逻辑 and | |
确定是否有任何数组元素非零 | |
确定相等性 | |
决定大于或等于 | |
确定大于 | |
isequal | 确定数组相等性 |
测试数组相等性,将 nan 值视为相等 | |
确定小于等于 | |
确定小于 | |
确定不相等性 | |
计算逻辑 not | |
计算逻辑 or | |
具有短路功能逻辑 or |
向量和矩阵运算
串联数组。 | |
cholesky 分解 | |
循环平移数组 | |
向量创建、数组下标和 for 循环迭代 | |
创建复数数组 | |
复共轭转置 | |
创建指定类的空数组 | |
单位矩阵 | |
翻转元素顺序 | |
将数组从左向右翻转 | |
将数组从上向下翻转 | |
horizontal concatenation for heterogeneous arrays | |
确定输入是否为列向量 | |
确定数组是否为空 | |
确定哪些数组元素为有限 | |
确定哪些数组元素为无限值 | |
确定输入是否为矩阵 | |
确定输入是否为行向量 | |
确定输入是否为标量 | |
确定数组是否已排序 | |
确定输入是否为向量 | |
最大数组维度的长度 | |
lu 矩阵分解 | |
数组的最大元素 | |
数组的最小元素 | |
数组维度数目 | |
数组元素的数目 | |
创建全部为 1 的数组 | |
置换数组维度 | |
重复数组元素副本 | |
重复数组副本 | |
重构数组 | |
数组大小 | |
对数组元素排序 | |
删除长度为 1 的维度 | |
转置向量或矩阵 | |
vertically concatenate for heterogeneous arrays | |
创建全零数组 |
图形
二维 alpha 形状的面积 | |
条形图 | |
水平条形图 | |
绘制表达式或函数 | |
创建基本线条 | |
二维线图 | |
三维点或线图 | |
散点图矩阵 | |
绘制颜色图 | |
散点图 | |
三维散点图 | |
设置或查询 x 坐标轴范围 | |
设置或查询 y 坐标轴范围 | |
设置或查询 z 坐标轴范围 |
深度学习
(deep learning toolbox) | 计算深度学习网络层激活 |
(deep learning toolbox) | classify data using trained deep learning neural network |
(deep learning toolbox) | reconstruct the inputs using trained autoencoder |
(deep learning toolbox) | predict responses using a trained recurrent neural network and update the network state |
要显示支持函数的列表,请在 matlab 命令行窗口中输入:
methods(half(1))
示例
将值转换为半精度
要将双精度数字转换为半精度,请使用 half
函数。
a = half(pi)
a = half 3.1406
您也可以使用 half
函数将现有变量转换为半精度。
v = single(magic(3))
v = 3x3 single matrix
8 1 6
3 5 7
4 9 2
a = half(v)
a = 3x3 half matrix 8 1 6 3 5 7 4 9 2
限制
不支持结合使用半精度和逻辑类型的算术运算。
有关其他使用说明和限制,请参阅。
扩展功能
c/c 代码生成
使用 matlab® coder™ 生成 c 代码和 c 代码。
有关支持使用半精度输入的代码生成的函数列表和任何相关联的限制,请参阅。
如果您的目标硬件不支持半精度,则
half
将用作存储类型,算术运算以单精度执行。有些函数仅将
half
用作存储类型,以单精度执行算术运算,不管目标硬件是什么。对于深度学习代码生成,半精度输入会转换为单精度,计算以单精度执行。
在 matlab 中,
isobject
函数以半精度输入返回 true。在生成的代码中,此函数返回 false。
gpu 代码生成
使用 gpu coder™ 为 nvidia® gpu 生成 cuda® 代码。
有关支持使用半精度输入的代码生成的函数列表和任何相关联的限制,请参阅。
要生成和执行具有半精度数据类型的代码,cuda® 计算能力必须为 5.3 或更高。
要生成和执行具有半精度数据类型的代码,cuda 工具包的版本必须为 10.0 或更高。
您必须将内存分配 (
malloc
) 模式设置为'discrete'
,才能生成 cuda 代码。gpu 代码生成不支持半精度复数数据类型。
如果您的目标硬件不支持半精度,则
half
将用作存储类型,算术运算以单精度执行。有些函数仅将
half
用作存储类型,以单精度执行算术运算,不管目标硬件是什么。对于深度学习代码生成,半精度输入会转换为单精度,计算以单精度执行。要将计算量减半,请在
coder.deeplearningconfig
中将库目标设置为'tensorrt'
,并将数据类型设置为'fp16'
。在 matlab 中,
isobject
函数以半精度输入返回 true。在生成的代码中,此函数返回 false。
版本历史记录
在 r2018b 中推出
另请参阅
|
主题
- generate code for sobel edge detection that uses half-precision data type (matlab coder)
- (gpu coder)
matlab 命令
您点击的链接对应于以下 matlab 命令:
请在 matlab 命令行窗口中直接输入以执行命令。web 浏览器不支持 matlab 命令。
you can also select a web site from the following list:
how to get best site performance
select the china site (in chinese or english) for best site performance. other mathworks country sites are not optimized for visits from your location.