Создайте численный объект половинной точности
Используйте 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.
Для получения дополнительной информации смотрите coder.gpuConfig.
Комплексные данные половинной точности не поддерживаются для генерации кода 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.