Половина поддержки генерации кода точности

Чтобы присвоить тип данных полуточности номеру или переменной, используйте half конструктор. Тип данных полуточности занимает 16 битов памяти, но ее представление с плавающей точкой позволяет ему обработать более широкие динамические диапазоны, чем целое число или типы данных с фиксированной точкой, одного размера. Для получения дополнительной информации смотрите Числа с плавающей запятой.

Подмножество MATLAB® функции поддерживаются для использования с входными параметрами полуточности. Кроме того, некоторые функции поддерживают генерацию кода с типами данных полуточности. C и генерация Кода С++ требует MATLAB Coder™. CUDA® генерация кода для NVIDIA® Графические процессоры требуют GPU Coder™. Поддерживаемые функции появляются в алфавитном порядке в следующей таблице. Для получения общей информации относительно генерации кода с половиной точности, смотрите half.

ФункцияПоддержка симуляции MATLABПоддержка Генерации кода C/C++Поддержка генерации кода графического процессора
abs
acos
acosh
activations (Deep Learning Toolbox)

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности.

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. Чтобы выполнить расчеты в половине, поставьте цель библиотеки к 'tensorrt' и набор тип данных к 'FP16' в coder.DeepLearningConfig.

all
and, &
any
area  
asin
asinh
atan
atan2
atanh
bar  
barh  
cast

Поддерживаемый синтаксис:

cast(_,'half')

cast(_,'like',p)

Поддерживаемый синтаксис:

cast(_,'half')

cast(_,'like',p)

Поддерживаемый синтаксис:

cast(_,'half')

cast(_,'like',p)

cat

  • Аргумент Dimension должен быть константой.

  • Аргумент Dimension не может быть половиной точности.

  • Аргумент Dimension должен быть константой.

  • Аргумент Dimension не может быть половиной точности.

ceil
cell
circshift
classify (Deep Learning Toolbox)

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности.

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. Чтобы выполнить расчеты в половине, поставьте цель библиотеки к 'tensorrt' и набор тип данных к 'FP16' в coder.DeepLearningConfig.

coder.ceval 
colon, :
complex 
conj
conv
conv2
cos
cosh
cospi
ctranspose
cumsum

  
dot  
double
empty  
eps
eq, ==
exp
expm1
eye

Поддерживаемый синтаксис:

eye(_,'half')

eye(_,'like',p)

Поддерживаемый синтаксис:

eye(_,'half')

eye(_,'like',p) где p половина точности. Другие входные параметры не могут быть половиной точности.

Поддерживаемый синтаксис:

eye(_,'half')

eye(_,'like',p) где p половина точности. Другие входные параметры не могут быть половиной точности.

fft 
fft2 
fftn 
fftshift
fix
flip

Аргумент Dimension не может быть половиной точности.

Аргумент Dimension не может быть половиной точности.

fliplr
flipud
floor
fma

Комплексные входные параметры полуточности не поддерживаются.

Комплексные входные параметры полуточности не поддерживаются.

Комплексные входные параметры полуточности не поддерживаются.

fplot  
ge, >=
gt, >
half
horzcat
hypot
ifft 
ifft2 
ifftn 
ifftshift
imag 
Inf

Поддерживаемый синтаксис:

Inf(_,'half')

Inf(_,'like',p)

Поддерживаемый синтаксис:

Inf(_,'half')

Inf(_,'like',p)

Поддерживаемый синтаксис:

Inf(_,'half')

Inf(_,'like',p)

int16
int32
int64
int8
isa
iscolumn
isempty
isequal
isequaln
isfinite
isfloat
isinf
isinteger
islogical
ismatrix
isnan
isnumeric
isobject

Возвращает true с входом полуточности.

Возвращает false с входом полуточности.

Возвращает false с входом полуточности.

isreal
isrow
isscalar
issorted  
isvector
ldivide
le, <=
length
line  
log
log10
log1p
log2

Два выходных синтаксиса не поддерживаются.

Два выходных синтаксиса не поддерживаются.

logical
Logical Operators: Short-Circuit && ||
lt, <
max
mean
min
minus, -
mldivide, \

Левая сторона должна быть скаляром

  
mod
mrdivide, /

Правая сторона должна быть скаляром

Правая сторона должна быть скаляром

Правая сторона должна быть скаляром

mtimes, *

Для Генерации кода графического процессора можно выполнить умножение матриц полуточности с действительными входными параметрами.

NaN

Поддерживаемый синтаксис:

NaN(_,'half')

NaN(_,'like',p)

Поддерживаемый синтаксис:

NaN(_,'half')

NaN(_,'like',p)

Поддерживаемый синтаксис:

NaN(_,'half')

NaN(_,'like',p)

ndims
ne, ~=
not
numel
ones

Поддерживаемый синтаксис:

ones(_,'half')

ones(_,'like',p)

Поддерживаемый синтаксис:

ones(_,'half')

ones(_,'like',p)

Поддерживаемый синтаксис:

ones(_,'half')

ones(_,'like',p)

or, ||
permute
plot  
plot3  
plotmatrix  
plus, +
pow10
pow2
power, .^
predict (Deep Learning Toolbox)

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности.

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. Чтобы выполнить расчеты в половине, поставьте цель библиотеки к 'tensorrt' и набор тип данных к 'FP16' в coder.DeepLearningConfig.

predictAndUpdateState (Deep Learning Toolbox)

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности.

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. Чтобы выполнить расчеты в половине, поставьте цель библиотеки к 'tensorrt' и набор тип данных к 'FP16' в coder.DeepLearningConfig.

prod

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. В результате поведение насыщения отличается между одним и половиной входных параметров:

maxhalf = half.realmax;
isequal(prod([maxhalf 2 0.5]), maxhalf)
ans =

  logical

   1
maxsingle = realmax('single');
isequal(prod([maxsingle 2 0.5]), maxsingle)
ans =

  logical

   0
rdivide
real
rem
repelem
repmat

Аргумент Dimension не может быть половиной точности.

Аргумент Dimension не может быть половиной точности.

reshape

Аргумент Dimension не может быть половиной точности.

Аргумент Dimension не может быть половиной точности.

rgbplot  
round

Только один вход поддержан

Только один вход поддержан

Только один вход поддержан

rsqrt

Комплексные входные параметры полуточности не поддерживаются

  
scatter  
scatter3  
sign
sin
single
sinh
sinpi
size
sort  
sqrt
squeeze
storedInteger  
sum

Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. В результате поведение насыщения отличается между одним и половиной входных параметров:

maxhalfint = half.flintmax;
isequal(sum([maxhalfint, 1, -1]), maxhalfint)
ans =

  logical

   1
maxsingleint = flintmax('single');
isequal(sum([maxsingleint, 1, -1]), maxsingleint)
ans =

  logical

   0
tan
tanh
times, .*
transpose
typecast  
uint16
uint32
uint64
uint8
uminus
uplus
vertcat
xlim  
ylim  
zeros

Поддерживаемый синтаксис:

zeros(_,'half')

zeros(_,'like',p)

Поддерживаемый синтаксис:

zeros(_,'half')

zeros(_,'like',p)

Поддерживаемый синтаксис:

zeros(_,'half')

zeros(_,'like',p)

zlim  

Смотрите также

Похожие темы