Создайте численный объект половинной точности
Используйте half
конструктор, для присвоения типа данных половинной точности числу или переменной. Тип данных половинной точности занимает 16 биты памяти, но его представление с плавающей точкой позволяет ему обрабатывать более широкие динамические области значений, чем целочисленные или типы данных с фиксированной точкой того же размера.
Для получения дополнительной информации см. Раздел Чисел с плавающей запятой» (Fixed-Point Designer).
v
- Входной массивВходной массив, заданный как скалярный, векторный, матричный или многомерный массив.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Поддержка комплексного числа: Да
Эти функции поддерживаются для использования с входами половинной точности.
abs | Абсолютное значение и комплексная амплитуда |
acos | Обратный косинус в радианах |
acosh | Обратный гиперболический косинус |
asin | Арксинус в радианах |
asinh | Обратный гиперболический синус |
atan | Обратный тангенс в радианах |
atan2 | Обратный тангенс с четырьмя квадрантами |
atanh | Обратный гиперболический тангенс |
ceil | Округлить к положительной бесконечности |
conj | Комплексный сопряженный |
conv | Свертка и умножение полиномов |
conv2 | 2-D свертки |
cos | Косинус аргумента в радианах |
cospi | Вычислите cos (X * pi), точно |
dot | Скалярный продукт |
exp | Экспоненциал |
expm1 | Вычислите exp (x) -1 точно для небольших значений x |
fft | Быстрое преобразование Фурье |
fft2 | 2-D быстрое преобразование Фурье |
fftn | N-D быстрое преобразование Фурье |
fftshift | Сдвиньте компонент нулевой частоты к центру спектра |
fix | Округлить к нулю |
floor | Округлить к отрицательной бесконечности |
fma (Fixed-Point Designer) | Умножьте и добавьте, используя слитый подход умножения сложения |
hypot | Квадратный корень из суммы квадратов (гипотенуза) |
ifft | Обратное быстрое преобразование Фурье |
ifft2 | 2-D обратное быстрое преобразование Фурье |
ifftn | Многомерное обратное быстрое преобразование Фурье |
ifftshift | Обратный сдвиг нуля частоты |
imag | Мнимая часть комплексного числа |
ldivide | Левое деление массива |
log | Естественный логарифм |
log10 | Общий логарифм (база 10) |
log1p | Вычислите журнал (1 + x), точно для небольших значений x |
mean | Среднее или среднее значение массива |
minus | Вычитание |
mldivide | Решите системы линейных уравнений, Ax = B для x |
mod | Остаток после деления (по операции с модулем) |
mrdivide | Решите системы линейных уравнений, xA = B для x |
mtimes | Матричное умножение |
plus | Добавьте числа, добавьте строки |
pow10 (Fixed-Point Designer) | Основание 10 степени и шкала половинной точности чисел |
pow2 | Базовая 2 степень и шкала чисел с плавающей запятой |
power | Поэлементная степень |
prod | Произведение элементов массива |
rdivide | Правый массив |
real | Действительная часть комплексного числа |
rem | Остаток после деления |
round | Округлить до ближайшего десятичного или целого числа |
rsqrt (Fixed-Point Designer) | Обратный квадратный корень |
sign | Знаковая функция (функция signum) |
sin | Синус аргумента в радианах |
sinh | Гиперболический синус |
sinpi | Вычислите sin (X * pi), точно |
sqrt | Квадратный корень |
sum | Сумма элементов массива |
tan | Тангенс аргумента в радианах |
tanh | Гиперболический тангенс |
times | Умножение |
uminus | Унарный минус |
uplus | Унарный плюс |
cast | Преобразуйте переменную в различные типы данных |
cell | Массив ячеек |
double | Массивы с двойной точностью |
eps | Относительная точность с плавающей точностью |
Inf | Создайте массив всех Inf значения |
int16 | 16-битные целочисленные массивы со знаком |
int32 | 32-битные целочисленные массивы со знаком |
int64 | 64-разрядные целочисленные массивы со знаком |
int8 | 8-битные целочисленные массивы со знаком |
isa | Определите, имеет ли вход заданный тип данных |
isfloat (Fixed-Point Designer) | Определите, является ли вход типом данных с плавающей точкой |
islogical | Определите, является ли вход логическим массивом |
isnan | Определите, какие элементы массива являются NaN |
isnumeric | Определите, является ли вход числовым массивом |
isreal | Определите, использует ли массив сложное хранилище |
logical | Преобразуйте числовые значения в логики |
NaN | Создайте массив всех NaN значения |
single | Массивы с одной точностью |
uint16 | 16-битные массивы беззнаковых целых чисел |
uint32 | 32-битные массивы беззнаковых целых чисел |
uint64 | 64-разрядные массивы беззнаковых целых чисел |
uint8 | 8-битные массивы беззнаковых целых чисел |
all | Определите, все ли элементы массива ненулевые или true |
and | Найти логический И |
any | Определите, являются ли какие-либо элементы массива ненулевыми |
eq | Определите равенство |
ge | Определите, больше или равно |
gt | Определите больше |
isequal | Определите равенство массива |
isequaln | Определите равенство массива, рассматривая значения NaN как равные |
le | Определите, меньше чем или равно |
lt | Определите меньше |
ne | Определите неравенство |
not | Найти логический НЕ |
or | Поиск логического OR |
cat | Конкатенация массивов |
circshift | Сдвиньте массив циклически |
colon | Создание векторов, индексирование массивов и for -итерация цикла |
complex | Создайте комплексный массив |
ctranspose | Комплексная сопряженная транспозиция |
eye | Тождества матрица |
flip | Изменить порядок элементов |
full | Преобразуйте разреженную матрицу в полное хранилище |
horzcat | Горизонтальная конкатенация для разнородных массивов |
iscolumn | Определите, является ли вход вектора-столбца |
isempty | Определите, является ли массив пустым |
isfinite | Определите, какие элементы массива являются конечными |
isinf | Определите, какие элементы массива бесконечны |
ismatrix | Определите, является ли вход матрицей |
isrow | Определите, является ли вход вектора-строки |
isscalar | Определите, является ли вход скалярным |
isvector | Определите, является ли вход вектором |
length | Длина наибольшего измерения массива |
max | Максимальное количество элементов массива |
min | Минимальные элементы массива |
ndims | Количество измерений массива |
numel | Количество элементов массива |
ones | Создайте массив всех таковых |
permute | Транспозиция измерений массива |
repelem | Повторите копии элементов массива |
repmat | Повторите копии массива |
reshape | Перестроить массив |
size | Размер массива |
subsasgn | Переопределение подписанного назначения |
subsref | Подписанная ссылка |
transpose | Транспонирование вектора или матрицы |
vertcat | Вертикальная конкатенация для разнородных массивов |
zeros | Создайте массив всех нулей |
display | Показать информацию о переменной или результате выражения |
area | Площадь 2-D альфа-формы |
bar | Штриховой график |
barh | Горизонтальный столбчатый график |
fplot | Постройте график выражения или функции |
line | Создайте примитивную линию |
plot | 2D график |
plot3 | 3-D или линейный график точки |
plotmatrix | График поля точек |
rgbplot | Постройте палитру |
scatter | График поля точек |
scatter3 | 3-D точечный график |
xlim | Установите или запросите x предельные пределы по осям |
ylim | Установите или запросите y предельные пределы по осям |
zlim | Установите или запросите z предельные пределы по осям |
activations (Deep Learning Toolbox) | Вычислите нейронную сеть для глубокого обучения слоя активации |
classify (Deep Learning Toolbox) | Классификация данных с помощью обученной глубокой нейронной сети |
predict (Deep Learning Toolbox) | Восстановите входы с помощью обученного автоэнкодера |
predictAndUpdateState (Deep Learning Toolbox) | Прогнозируйте ответы с помощью обученной рекуррентной нейронной сети и обновляйте состояние сети |
Чтобы отобразить полный список поддерживаемых функций, в 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
Следующие функции, которые поддерживают входные входы половинной точности, не поддерживают комплексные входы половинной точности.
rsqrt
fma
Все функции, которые поддерживают входы половинной точности, поддерживают генерацию кода, кроме rsqrt
функция.
В MATLAB, isobject
функция возвращает true с наполовину точным входом. В сгенерированном коде эта функция возвращает false.
Если ваш целевой компьютер не имеет собственной поддержки половинной точности, то half
используется как тип памяти, с арифметическими операциями, выполненными с одной точностью.
Некоторые функции используют half
только как тип памяти, и арифметика выполняется с одной точностью, независимо от целевого компьютера.
Для генерации кода глубокого обучения половина входов приведена к одной точности, а расчеты выполнены с одной точностью.
CUDA® вычислительная способность 5,3 или выше необходима для генерации и выполнения кода с типами данных половинной точности.
CUDA toolkit версии 10.0 или более поздней требуется для генерации и выполнения кода с типами данных половинной точности.
Вы должны задать выделение памяти (malloc
) режим для 'Discrete'
для генерации кода CUDA.
Комплексные данные половинной точности не поддерживаются для генерации кода GPU.
Для генерации кода GPU можно выполнить умножение матрицы половинной точности с реальными входами.
В MATLAB, isobject
функция возвращает true с наполовину точным входом. В сгенерированном коде эта функция возвращает false.
fft
, fft2
, fftn
, fftshift
, ifft
, ifft2
, ifftn
, иifftshift
не поддерживаются для генерации кода GPU.
Если ваш целевой компьютер не имеет собственной поддержки половинной точности, то half
используется как тип памяти, с арифметическими операциями, выполненными с одной точностью.
Некоторые функции используют half
только как тип памяти, и арифметика выполняется с одной точностью, независимо от целевого компьютера.
Для генерации кода глубокого обучения половина входов приведена к одной точности, а расчеты выполнены с одной точностью. Чтобы выполнить расчеты вдвое, установите целевое значение библиотеки равным 'tensorrt'
и установите тип данных равным 'FP16'
в coder.DeepLearningConfig
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.