Последовательность ввела слой
Последовательность ввела входные данные о последовательности слоя к сети.
создает входной слой последовательности и устанавливает layer
= sequenceInputLayer(inputSize
)InputSize
свойство.
устанавливает дополнительный layer
= sequenceInputLayer(inputSize
,Name,Value
)MinLength
, Normalization
среднее значение
, и Name
свойства с помощью пар "имя-значение". Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки.
InputSize
— Размер входаРазмер входа в виде положительного целого числа или вектора из положительных целых чисел.
Для векторного входа последовательности, InputSize
скаляр, соответствующий количеству функций.
Для 1D входа последовательности изображений, InputSize
вектор из двух элементов [h c]
, где h
высота изображения и c
количество каналов изображения.
Для 2D входа последовательности изображений, InputSize
вектор из трех элементов [h w c]
, где h
высота изображения, w
ширина изображения и c
количество каналов изображения.
Для 3-D входа последовательности изображений, InputSize
вектор из четырех элементов [h w d c]
, где h
высота изображения, w
ширина изображения, d
глубина изображений и c
количество каналов изображения.
Чтобы задать минимальную длину последовательности входных данных, используйте MinLength
свойство.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
MinLength
— Минимальная длина последовательности входных данных
(значение по умолчанию) | положительное целое числоМинимальная длина последовательности входных данных в виде положительного целого числа. Когда обучение или предсказания создания с сетью, если входные данные имеет меньше, чем MinLength
временные шаги, затем программное обеспечение выдает ошибку.
Когда вы создаете сеть, которая прореживает данные в измерении времени, необходимо заботиться, что сеть поддерживает обучающие данные и любые данные для предсказания. Некоторые слои глубокого обучения требуют, чтобы вход имел минимальную длину последовательности. Например, 1D слой свертки требует, чтобы вход имел, по крайней мере, столько же временных шагов сколько размер фильтра.
Когда временные ряды данных о последовательности распространяют через сеть, длина последовательности может измениться. Например, субдискретизация операций, таких как 1D свертки может выходные данные с меньшим количеством временных шагов, чем его вход. Это означает, что субдискретизация операций может заставить более поздние слои в сети выдавать ошибку, потому что данные имеют более короткую длину последовательности, чем минимальная длина, требуемая слоем.
Когда вы обучаете или собираете сеть, программное обеспечение автоматически проверяет, что последовательности длины 1 могут распространить через сеть. Некоторые сети не могут поддержать последовательности длины 1, но могут успешно распространить последовательности более долгих длин. Чтобы проверять, что распространение поддержек сети вашего обучения и ожидаемых данных о предсказании, устанавливает MinLength
свойство к значению, меньше чем или равному минимальной длине ваших данных и ожидаемой минимальной длине ваших данных о предсказании.
Совет
Чтобы препятствовать тому, чтобы свертка и слои объединения изменили размер данных, установите Padding
опция слоя к "same"
или "causal"
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Normalization
— Нормализация данных'none'
(значение по умолчанию) | 'zerocenter'
| 'zscore'
| 'rescale-symmetric'
| 'rescale-zero-one'
| указатель на функциюНормализация данных, чтобы применить каждый раз данные вперед распространена через входной слой в виде одного из следующего:
'zerocenter'
— Вычтите среднее значение, заданное Mean
.
'zscore'
— Вычтите среднее значение, заданное Mean
и разделитесь на StandardDeviation
.
'rescale-symmetric'
— Перемасштабируйте вход, чтобы быть в области значений [-1, 1] использование минимальных и максимальных значений, заданных Min
и Max
, соответственно.
'rescale-zero-one'
— Перемасштабируйте вход, чтобы быть в области значений [0, 1] использование минимальных и максимальных значений, заданных Min
и Max
, соответственно.
'none'
— Не нормируйте входные данные.
указатель на функцию — Нормирует данные с помощью заданной функции. Функция должна иметь форму Y = func(X)
, где X
входные данные и выход Y
нормированные данные.
Совет
Программное обеспечение, по умолчанию, автоматически вычисляет статистику нормализации в учебное время. Чтобы сэкономить время когда обучение, задайте необходимую статистику для нормализации и установите 'ResetInputNormalization'
опция в trainingOptions
к false
.
Если входные данные содержат дополнение, то слой, проигнорированный, дополняя значения при нормализации входных данных.
Типы данных: char |
string
| function_handle
NormalizationDimension
— Размерность нормализации'auto'
(значение по умолчанию) | 'channel'
| 'element'
| 'all'
Размерность нормализации в виде одного из следующего:
'auto'
– Если опцией обучения является false
и вы задаете любые из статистических данных нормализации (Mean
Стандартное отклонение
min
, или Max
), затем нормируйте по размерностям, совпадающим со статистикой. В противном случае повторно вычислите статистику в учебное время и примените мудрую каналом нормализацию.
'channel'
– Мудрая каналом нормализация.
'element'
– Поэлементная нормализация.
'all'
– Нормируйте все значения с помощью скалярной статистики.
Типы данных: char |
string
Mean
— Среднее значение для нулевого центра и нормализации z-счета[]
(значение по умолчанию) | числовой массив | числовой скалярСреднее значение для нулевого центра и нормализации z-счета в виде числового массива, или пустой.
Для векторного входа последовательности, Mean
должен быть InputSize
- 1 вектор из средних значений на канал, числовой скаляр или []
.
Для 2D входа последовательности изображений, Mean
должен быть числовой массив одного размера с InputSize
, 1 1 InputSize(3)
массив средних значений на канал, числовой скаляр или []
.
Для 3-D входа последовательности изображений, Mean
должен быть числовой массив одного размера с InputSize
, 1 1 1 InputSize(4)
массив средних значений на канал, числовой скаляр или []
.
Если вы задаете Mean
свойство, затем Normalization
должен быть 'zerocenter'
или 'zscore'
. Если Mean
[]
, затем программное обеспечение вычисляет среднее значение в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
StandardDeviation
Стандартное отклонение[]
(значение по умолчанию) | числовой массив | числовой скалярСтандартное отклонение, используемое для нормализации z-счета в виде числового массива, числового скаляра, или пустой.
Для векторного входа последовательности, StandardDeviation
должен быть InputSize
- 1 вектор из стандартных отклонений на канал, числовой скаляр или []
.
Для 2D входа последовательности изображений, StandardDeviation
должен быть числовой массив одного размера с InputSize
, 1 1 InputSize(3)
массив стандартных отклонений на канал, числовой скаляр или []
.
Для 3-D входа последовательности изображений, StandardDeviation
должен быть числовой массив одного размера с InputSize
, 1 1 1 InputSize(4)
массив стандартных отклонений на канал или числовой скаляр.
Если вы задаете StandardDeviation
свойство, затем Normalization
должен быть 'zscore'
. Если StandardDeviation
[]
, затем программное обеспечение вычисляет стандартное отклонение в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Min
— Минимальное значение для того, чтобы перемасштабировать[]
(значение по умолчанию) | числовой массив | числовой скалярМинимальное значение для того, чтобы перемасштабировать в виде числового массива, или пустой.
Для векторного входа последовательности, Min
должен быть InputSize
- 1 вектор из средних значений на канал или числовой скаляр.
Для 2D входа последовательности изображений, Min
должен быть числовой массив одного размера с InputSize
, 1 1 InputSize(3)
массив минимумов на канал или числовой скаляр.
Для 3-D входа последовательности изображений, Min
должен быть числовой массив одного размера с InputSize
, 1 1 1 InputSize(4)
массив минимумов на канал или числовой скаляр.
Если вы задаете Min
свойство, затем Normalization
должен быть 'rescale-symmetric'
или 'rescale-zero-one'
. Если Min
[]
, затем программное обеспечение вычисляет минимумы в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Max
— Максимальное значение для того, чтобы перемасштабировать[]
(значение по умолчанию) | числовой массив | числовой скалярМаксимальное значение для того, чтобы перемасштабировать в виде числового массива, или пустой.
Для векторного входа последовательности, Max
должен быть InputSize
- 1 вектор из средних значений на канал или числовой скаляр.
Для 2D входа последовательности изображений, Max
должен быть числовой массив одного размера с InputSize
, 1 1 InputSize(3)
массив максимумов на канал, числовой скаляр или []
.
Для 3-D входа последовательности изображений, Max
должен быть числовой массив одного размера с InputSize
, 1 1 1 InputSize(4)
массив максимумов на канал, числовой скаляр или []
.
Если вы задаете Max
свойство, затем Normalization
должен быть 'rescale-symmetric'
или 'rescale-zero-one'
. Если Max
[]
, затем программное обеспечение вычисляет максимумы в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Name
— Имя слоя''
(значение по умолчанию) | вектор символов | строковый скаляр
Имя слоя в виде вектора символов или строкового скаляра. Для Layer
вход массивов, trainNetwork
, assembleNetwork
, layerGraph
, и dlnetwork
функции автоматически присваивают имена к слоям с Name
установите на ''
.
Типы данных: char |
string
NumInputs
— Количество входных параметровКоличество входных параметров слоя. Слой не имеет никаких входных параметров.
Типы данных: double
InputNames
— Введите имена{}
(значение по умолчанию)Введите имена слоя. Слой не имеет никаких входных параметров.
Типы данных: cell
NumOutputs
— Количество выходных параметров
(значение по умолчанию)Это свойство доступно только для чтения.
Количество выходных параметров слоя. Этот слой имеет один выход только.
Типы данных: double
OutputNames
— Выведите имена{'out'}
(значение по умолчанию)Это свойство доступно только для чтения.
Выведите имена слоя. Этот слой имеет один выход только.
Типы данных: cell
Создайте входной слой последовательности с именем 'seq1'
и входной размер 12.
layer = sequenceInputLayer(12,'Name','seq1')
layer = SequenceInputLayer with properties: Name: 'seq1' InputSize: 12 MinLength: 1 Hyperparameters Normalization: 'none' NormalizationDimension: 'auto'
Включайте входной слой последовательности в Layer
массив.
inputSize = 12; numHiddenUnits = 100; numClasses = 9; layers = [ ... sequenceInputLayer(inputSize) lstmLayer(numHiddenUnits,'OutputMode','last') fullyConnectedLayer(numClasses) softmaxLayer classificationLayer]
layers = 5x1 Layer array with layers: 1 '' Sequence Input Sequence input with 12 dimensions 2 '' LSTM LSTM with 100 hidden units 3 '' Fully Connected 9 fully connected layer 4 '' Softmax softmax 5 '' Classification Output crossentropyex
Создайте входной слой последовательности для последовательностей 224-224 изображений RGB с именем 'seq1'
.
layer = sequenceInputLayer([224 224 3], 'Name', 'seq1')
layer = SequenceInputLayer with properties: Name: 'seq1' InputSize: [224 224 3] MinLength: 1 Hyperparameters Normalization: 'none' NormalizationDimension: 'auto'
Обучите сеть LSTM глубокого обучения для классификации последовательностей к метке.
Загрузите японский набор данных Гласных как описано в [1] и [2]. XTrain
массив ячеек, содержащий 270 последовательностей различной длины с 12 функциями, соответствующими коэффициентам кепстра LPC. Y
категориальный вектор из меток 1,2..., 9. Записи в XTrain
матрицы с 12 строками (одна строка для каждого признака) и различным количеством столбцов (один столбец для каждого временного шага).
[XTrain,YTrain] = japaneseVowelsTrainData;
Визуализируйте первые временные ряды в графике. Каждая линия соответствует функции.
figure plot(XTrain{1}') title("Training Observation 1") numFeatures = size(XTrain{1},1); legend("Feature " + string(1:numFeatures),'Location','northeastoutside')
Задайте архитектуру сети LSTM. Задайте входной размер как 12 (количество функций входных данных). Задайте слой LSTM, чтобы иметь 100 скрытых модулей и вывести последний элемент последовательности. Наконец, задайте девять классов включением полносвязного слоя размера 9, сопровождаемый softmax слоем и слоем классификации.
inputSize = 12; numHiddenUnits = 100; numClasses = 9; layers = [ ... sequenceInputLayer(inputSize) lstmLayer(numHiddenUnits,'OutputMode','last') fullyConnectedLayer(numClasses) softmaxLayer classificationLayer]
layers = 5x1 Layer array with layers: 1 '' Sequence Input Sequence input with 12 dimensions 2 '' LSTM LSTM with 100 hidden units 3 '' Fully Connected 9 fully connected layer 4 '' Softmax softmax 5 '' Classification Output crossentropyex
Задайте опции обучения. Задайте решатель как 'adam'
и 'GradientThreshold'
как 1. Установите мини-пакетный размер на 27 и определите максимальный номер эпох к 70.
Поскольку мини-пакеты малы с короткими последовательностями, центральный процессор лучше подходит для обучения. Установите 'ExecutionEnvironment'
к 'cpu'
. Чтобы обучаться на графическом процессоре, при наличии, устанавливает 'ExecutionEnvironment'
к 'auto'
(значение по умолчанию).
maxEpochs = 70; miniBatchSize = 27; options = trainingOptions('adam', ... 'ExecutionEnvironment','cpu', ... 'MaxEpochs',maxEpochs, ... 'MiniBatchSize',miniBatchSize, ... 'GradientThreshold',1, ... 'Verbose',false, ... 'Plots','training-progress');
Обучите сеть LSTM с заданными опциями обучения.
net = trainNetwork(XTrain,YTrain,layers,options);
Загрузите набор тестов и классифицируйте последовательности в динамики.
[XTest,YTest] = japaneseVowelsTestData;
Классифицируйте тестовые данные. Задайте тот же мини-пакетный размер, используемый для обучения.
YPred = classify(net,XTest,'MiniBatchSize',miniBatchSize);
Вычислите точность классификации предсказаний.
acc = sum(YPred == YTest)./numel(YTest)
acc = 0.9541
Чтобы создать сеть LSTM для классификации последовательностей к метке, создайте массив слоя, содержащий входной слой последовательности, слой LSTM, полносвязный слой, softmax слой и классификацию выходной слой.
Установите размер входного слоя последовательности к количеству функций входных данных. Установите размер полносвязного слоя к количеству классов. Вы не должны задавать длину последовательности.
Для слоя LSTM задайте количество скрытых модулей и режима вывода 'last'
.
numFeatures = 12; numHiddenUnits = 100; numClasses = 9; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits,'OutputMode','last') fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
Для примера, показывающего, как обучить сеть LSTM для классификации последовательностей к метке и классифицировать новые данные, смотрите, что Классификация Последовательностей Использует Глубокое обучение.
Чтобы создать сеть LSTM для классификации от последовательности к последовательности, используйте ту же архитектуру что касается классификации последовательностей к метке, но установите режим вывода слоя LSTM к 'sequence'
.
numFeatures = 12; numHiddenUnits = 100; numClasses = 9; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits,'OutputMode','sequence') fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
Чтобы создать сеть LSTM для sequence-one регрессии, создайте массив слоя, содержащий входной слой последовательности, слой LSTM, полносвязный слой и регрессию выходной слой.
Установите размер входного слоя последовательности к количеству функций входных данных. Установите размер полносвязного слоя к количеству ответов. Вы не должны задавать длину последовательности.
Для слоя LSTM задайте количество скрытых модулей и режима вывода 'last'
.
numFeatures = 12; numHiddenUnits = 125; numResponses = 1; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits,'OutputMode','last') fullyConnectedLayer(numResponses) regressionLayer];
Чтобы создать сеть LSTM для регрессии от последовательности к последовательности, используйте ту же архитектуру что касается sequence-one регрессии, но установите режим вывода слоя LSTM к 'sequence'
.
numFeatures = 12; numHiddenUnits = 125; numResponses = 1; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits,'OutputMode','sequence') fullyConnectedLayer(numResponses) regressionLayer];
Для примера, показывающего, как обучить сеть LSTM для регрессии от последовательности к последовательности и предсказать на новых данных, смотрите, что Регрессия От последовательности к последовательности Использует Глубокое обучение.
Можно сделать сети LSTM глубже путем вставки дополнительных слоев LSTM с режимом вывода 'sequence'
перед слоем LSTM. Чтобы предотвратить сверхподбор кривой, можно вставить слои уволенного после слоев LSTM.
Для сетей классификации последовательностей к метке режимом вывода последнего слоя LSTM должен быть 'last'
.
numFeatures = 12; numHiddenUnits1 = 125; numHiddenUnits2 = 100; numClasses = 9; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits1,'OutputMode','sequence') dropoutLayer(0.2) lstmLayer(numHiddenUnits2,'OutputMode','last') dropoutLayer(0.2) fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
Для сетей классификации от последовательности к последовательности режимом вывода последнего слоя LSTM должен быть 'sequence'
.
numFeatures = 12; numHiddenUnits1 = 125; numHiddenUnits2 = 100; numClasses = 9; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits1,'OutputMode','sequence') dropoutLayer(0.2) lstmLayer(numHiddenUnits2,'OutputMode','sequence') dropoutLayer(0.2) fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
Создайте нейронную сеть для глубокого обучения для данных, содержащих последовательности изображений, такие как видео и медицинские данные изображения.
Чтобы ввести последовательности изображений в сеть, используйте входной слой последовательности.
Чтобы применить сверточные операции независимо к каждому временному шагу, сначала преобразуйте последовательности изображений к массиву изображений с помощью слоя сворачивания последовательности.
Чтобы восстановить структуру последовательности после выполнения этих операций, преобразуйте этот массив изображений назад к последовательностям изображений с помощью слоя разворачивания последовательности.
Чтобы преобразовать изображения в характеристические векторы, используйте сглаживать слой.
Вы можете затем последовательности входного вектора на слои LSTM и BiLSTM.
Архитектура сети Define
Создайте сеть LSTM классификации, которая классифицирует последовательности 28 28 полутоновых изображений в 10 классов.
Задайте следующую сетевую архитектуру:
Последовательность ввела слой с входным размером [28 28 1]
.
Свертка, нормализация партии. и слой ReLU блокируются с 20 фильтрами 5 на 5.
Слой LSTM с 200 скрытыми модулями, который выводит последний временной шаг только.
Полносвязный слой размера 10 (количество классов) сопровождаемый softmax слоем и слоем классификации.
Чтобы выполнить сверточные операции на каждом временном шаге независимо, включайте слой сворачивания последовательности перед сверточными слоями. Слои LSTM ожидают векторный вход последовательности. Чтобы восстановить структуру последовательности и изменить выход сверточных слоев к последовательностям характеристических векторов, вставьте слой разворачивания последовательности и сглаживать слой между сверточными слоями и слоем LSTM.
inputSize = [28 28 1]; filterSize = 5; numFilters = 20; numHiddenUnits = 200; numClasses = 10; layers = [ ... sequenceInputLayer(inputSize,'Name','input') sequenceFoldingLayer('Name','fold') convolution2dLayer(filterSize,numFilters,'Name','conv') batchNormalizationLayer('Name','bn') reluLayer('Name','relu') sequenceUnfoldingLayer('Name','unfold') flattenLayer('Name','flatten') lstmLayer(numHiddenUnits,'OutputMode','last','Name','lstm') fullyConnectedLayer(numClasses, 'Name','fc') softmaxLayer('Name','softmax') classificationLayer('Name','classification')];
Преобразуйте слои в график слоев и соедините miniBatchSize
выход слоя сворачивания последовательности к соответствующему входу слоя разворачивания последовательности.
lgraph = layerGraph(layers); lgraph = connectLayers(lgraph,'fold/miniBatchSize','unfold/miniBatchSize');
Просмотрите итоговую сетевую архитектуру с помощью plot
функция.
figure plot(lgraph)
sequenceInputLayer
, по умолчанию, мудрая каналом нормализация использования для нулевой центральной нормализацииИзменение поведения в будущем релизе
Начиная в R2019b, sequenceInputLayer
, по умолчанию, мудрая каналом нормализация использования для нулевой центральной нормализации. В предыдущих версиях этот слой использует поэлементную нормализацию. Чтобы воспроизвести это поведение, установите NormalizationDimension
опция этого слоя к 'element'
.
sequenceInputLayer
игнорирует дополнительные значения при нормализацииПоведение изменяется в R2020a
Начиная в R2020a, sequenceInputLayer
объекты игнорируют дополнительные значения во входных данных при нормализации. Это означает что Normalization
опция в sequenceInputLayer
теперь делает учебный инвариант к операциям данных, например, 'zerocenter'
нормализация теперь подразумевает, что учебные результаты являются инвариантными к среднему значению данных.
Если вы обучаетесь на заполненных последовательностях, то расчетные коэффициенты нормализации могут отличаться в более ранних версиях и могут привести к различным результатам.
[1] М. Кудо, J. Тояма, и М. Шимбо. "Многомерная Классификация Кривых Используя Прохождение через области". Буквы Распознавания образов. Издание 20, № 11-13, страницы 1103-1111.
[2] Репозиторий Машинного обучения UCI: японский Набор данных Гласных. https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels
Для векторных входных параметров последовательности количество функций должно быть константой во время генерации кода.
Генерация кода не поддерживает 'Normalization'
заданное использование указателя на функцию.
Указания и ограничения по применению:
Сгенерировать CUDA® или Код С++ при помощи GPU Coder™, необходимо сначала создать и обучить глубокую нейронную сеть. Если сеть обучена и оценена, можно сконфигурировать генератор кода, чтобы сгенерировать код и развернуть сверточную нейронную сеть на платформах то использование NVIDIA® или ARM® Процессоры графического процессора. Для получения дополнительной информации смотрите Глубокое обучение для GPU Coder (GPU Coder).
Для этого слоя можно сгенерировать код, который использует в своих интересах библиотеку глубокой нейронной сети CUDA NVIDIA (cuDNN) или высокопроизводительную библиотеку вывода NVIDIA TensorRT™.
cuDNN библиотека поддерживает векторные и 2D последовательности изображений. Библиотека TensorRT поддерживает только векторные входные последовательности.
Для векторных входных параметров последовательности количество функций должно быть константой во время генерации кода.
Для входных параметров последовательности изображений высота, ширина и количество каналов должны быть константой во время генерации кода.
Генерация кода не поддерживает 'Normalization'
заданное использование указателя на функцию.
lstmLayer
| bilstmLayer
| gruLayer
| classifyAndUpdateState
| predictAndUpdateState
| resetState
| sequenceFoldingLayer
| flattenLayer
| sequenceUnfoldingLayer
| Deep Network Designer | featureInputLayer
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.