что делает данная строчка?
начинаю свое путешествие в нейросетях и пытаюсь понять, что конкретно выполняет данная строчка:
z.alpha = 1/((i/3 + 6000) *np.max([np.max(z.weights1),np.max(z.weights2),np.max(z.free_coef1[0]),np.max(z.free_coef2[0])]))
weight - веса, free_coef - свободные коеффициенты интересует конкретно
np.max([np.max(z.weights1),np.max(z.weights2),np.max(z.free_coef1[0]),np.max(z.free_coef2[0])]))
Ответы (1 шт):
Сложно, конечно, вне контекста предположить, что делает данная строка с точки зрения логики. Однако с точки зрения назначения использованных функций могу сказать, что np.max возвращает максимальное значение в массиве. Следовательно, в Вашем случае данная строка
np.max([np.max(z.weights1),np.max(z.weights2),np.max(z.free_coef1[0]),np.max(z.free_coef2[0])]))
получает сначала максимумы массивов z.weights1, z.weights2, z.free_coef1[0] и z.free_coef2[0] (4 числа), потом из этих максимумов делает список, оборачивая их в [], а потом находит максимум в данном списке (насчёт момента, когда список преобразуется в тип np.array точно сказать не могу), то есть максимум из этих четырёх чисел – максимум из максимумов – одно число, являющееся максимальным в данных массивах. Делается это ещё одним вызовом np.max.
P.S. Из названий переменных, а точнее, полей объекта z, могу предположить, что, с точки зрения смысла, данная строка находит максимальное значение из весов и свободных коэффициентов. Но это всего лишь предположение. О большем судить невозможно ввиду недостатка контекста.