Построение числового объекта с полупрецизионной точностью
Используйте half конструктор для назначения типа данных с полуконцентрированностью номеру или переменной. Тип данных половинной точности занимает 16 бит памяти, но его представление с плавающей запятой позволяет обрабатывать более широкие динамические диапазоны, чем целочисленные или фиксированные типы данных одинакового размера.
Дополнительные сведения см. в разделе Номера с плавающей запятой (Конструктор с фиксированной запятой).
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 (Конструктор фиксированных точек) | Умножение и сложение с помощью плавкого подхода умножения и сложения |
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 (Конструктор фиксированных точек) | Базовые 10 значений мощности и масштаба с полупрецизионной точностью |
pow2 | Базовые 2 числа с плавающей запятой и с плавающей шкалой |
power | Мощность по элементам |
prod | Произведение элементов массива |
rdivide | Правое разделение массива |
real | Действительная часть комплексного числа |
rem | Остаток после разделения |
round | Округление до ближайшего десятичного или целого числа |
rsqrt (Конструктор фиксированных точек) | Ответный квадратный корень |
sign | Функция знака (функция сигнала) |
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 (Конструктор фиксированных точек) | Определите, является ли ввод типом данных с плавающей запятой |
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 | Найти логическое NOT |
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-й альфа-формы |
bar | Гистограмма |
barh | Горизонтальная гистограмма |
fplot | Печать выражения или функции |
line | Создание примитивной линии |
plot | 2-D график линии |
plot3 | 3-D точечный или линейный график |
plotmatrix | Матрица графика рассеяния |
rgbplot | Карта цветов графика |
scatter | График рассеяния |
scatter3 | 3-D график рассеяния |
xlim | Установка или запрос пределов по оси X |
ylim | Установка или запрос пределов по оси Y |
zlim | Установка или запрос пределов по оси Z |
activations (инструментарий для глубокого обучения) | Вычислять активации сетевого уровня глубокого обучения |
classify (инструментарий для глубокого обучения) | Классифицировать данные с помощью обученной нейронной сети глубокого обучения |
predict (инструментарий для глубокого обучения) | Реконструируйте входные данные с помощью обученного автокодера |
predictAndUpdateState (инструментарий для глубокого обучения) | Прогнозирование ответов с использованием обученной рецидивирующей нейронной сети и обновление состояния сети |
Для отображения полного списка поддерживаемых функций в окне команд 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 версии 10.0 или более поздней необходим для создания и выполнения кода с типами данных с полупрецизионной точностью.
Необходимо установить выделение памяти (malloc) режим для 'Discrete' для создания кода CUDA.
Дополнительные сведения см. в разделе coder.gpuConfig.
Сложные типы данных половинной точности не поддерживаются для генерации кода графического процессора.
Для генерации кода GPU можно выполнить умножение матрицы с полуконкретностью с вещественными входами.
В MATLAB, isobject функция возвращает значение true с вводом с половиной точности. В сгенерированном коде эта функция возвращает значение false.
fft, fft2, fftn, fftshift, ifft, ifft2, ifftn, иifftshift не поддерживаются для генерации кода графического процессора.
Если целевое оборудование не имеет встроенной поддержки полупериодичности, то half используется в качестве типа склада, с арифметическими операциями, выполняемыми с одинарной точностью.
Некоторые функции используются half только как тип хранения и арифметика выполняется с одной точностью, независимо от целевого оборудования.
Для генерации кода глубокого обучения половинные входы преобразуются в единичную точность, а вычисления выполняются с единичной точностью. Чтобы выполнить вычисления пополам, задайте целевой объект библиотеки равным 'tensorrt' и задайте для типа данных значение 'FP16' в coder.DeepLearningConfig.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.