История изменений
Исправление Obezyan, (текущая версия) :
Вам стоит немного изменить и данные и сеть.
Входные данные: температура от датчика, ее нужно нормализовать - загнать в значения 0..1. Ноль это скажем 30 градусов, та температура когда вентилятор выключен, 1 это 90 градусов - когда вентилятор работает на 100 процентов. Температуры просто пример, подставьте желаемые.
Выходные данные: обороты вентилятора в диапазоне от 0 до 1, где 0 это 0 оборотов, 1 - 4500 оборотов или сколько там ваш вентилятор может давать в максимуме.
Функция активации: лучше сменить сигмоиду на relu потому что вам нужна линейная зависимость в диапазоне от 0 до 1, а у сигмоиды к концам диапазона игреки слабо реагируют на изменения в иксах.
Если у вас несколько датчиков и несколько вентиляторов регулируемых, отдельно то нужно передавать массивы
training_inputs = np.array ([[0.21,0.22,0.21,0.35],
[0.9,0.88,0.85,0.82])
Выходными данными будут обороты для каждого вентилятора
training_outputs = np.array([0.3, 0.31, 0.3, 0.33],
[0.8, 0.79, 0.77, 0.71])
Если же все вентиляторы имеют общую регулировку тогда имеет смысл передавать температуру того диска где она максимальна, а в результате возвращать обороты одинаковые для всех вентиляторов
training_inputs = np.array ([[0.35],
[0.9]])
training_outputs = np.array([0.33],
[0.79])
Исходная версия Obezyan, :
Вам стоит немного изменить и данные и сеть.
Входные данные: температура от датчика, ее нужно нормализовать - загнать в значения 0..1. Ноль это скажем 30 градусов, та температура когда вентилятор выключен, 1 это 90 градусов - когда вентилятор работает на 100 процентов. Температуры просто пример, подставьте желаемые.
Выходные данные: обороты вентилятора в диапазоне от 0 до 1, где 0 это 0 оборотов, 1 - 4500 оборотов или сколько там ваш вентилятор может давать в максимуме.
Функция активации: лучше сменить сигмоиду на relu потому что вам нужна линейная зависимость в диапазоне от 0 до 1, а у сигмоиды к концам диапазона игреки слабо реагируют на изменения в иксах.
Если у вас несколько датчиков и несколько вентиляторов регулируемых, отдельно то нужно передавать массивы
training_inputs = np.array ([[0.21,0.22,0.21,0.35],
[0.9,0.88,0.85,0.82])
Выходными данными будут обороты для каждого вентилятора
training_outputs = np.array([0.3, 0.31, 0.3, 0.33],
[0.8, 0.79, 0.77, 0.71])
Если же все вентиляторы имеют общую регулировку тогда имеет смысл передавать температуру того диска где она максимальна, а в результате возвращать обороты одинаковые для всех вентиляторов
training_inputs = np.array ([[0.35],
[0.9])
training_outputs = np.array([0.33],
[0.79])