Задача заключается в написании функции softmax, которая принимает на вход одномерный массив чисел a и возвращает softmax вектор.
Шаги решения:
1. Создаем пустой массив exp_a для хранения экспоненциальных значений элементов массива a.
2. Необходимо вычислить экспоненциальное значение для каждого элемента массива a. Для этого используем цикл, проходящий по всем элементам массива a.
3. Добавляем в массив exp_a экспоненциальное значение каждого элемента массива a с помощью функции exp из модуля math.
4. Находим сумму всех элементов массива exp_a с помощью функции sum.
5. Создаем пустой массив softmax_a для хранения softmax значений элементов массива a.
6. Вычисляем softmax значение каждого элемента массива a путем деления соответствующего экспоненциального значения элемента массива exp_a на сумму всех экспоненциальных значений.
7. Возвращаем массив softmax_a.
Пример:
Входные данные: a = [1, 2, 3]
1. Создаем пустой массив exp_a.
2. Вычисляем экспоненциальные значения для каждого элемента массива a: exp_a = [exp(1), exp(2), exp(3)] = [2.71, 7.39, 20.09].
3. Находим сумму всех элементов массива exp_a: сумма = 2.71 + 7.39 + 20.09 = 30.19.
4. Создаем пустой массив softmax_a.
5. Вычисляем softmax значение каждого элемента массива a:
softmax_a[0] = exp_a[0] / сумма = 2.71 / 30.19 ≈ 0.089
softmax_a[1] = exp_a[1] / сумма = 7.39 / 30.19 ≈ 0.244
softmax_a[2] = exp_a[2] / сумма = 20.09 / 30.19 ≈ 0.667
6. Возвращаем массив softmax_a: [0.089, 0.244, 0.667].
Выходные данные: [0.089, 0.244, 0.667]