Точность Keras не меняется для модуля с несколькими выходамиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Точность Keras не меняется для модуля с несколькими выходами

Сообщение Anonymous »


Я только начал изучать keras и модули машинного обучения, так что терпите меня, даже если мой код выглядит полным неэффективным материалом и неточностями. Итак, по сути, то, что я хочу, чтобы мой модуль ml делал, — это прогнозировать штраф/наказание, назначенное за случаи мошенничества, с входными данными в форме (сумма ущерба ($), если рецидив) и целями в формате (штраф ( $), тюрьма (месяцы), общественные работы (часы), испытательный срок (месяцы)) — мой код следующий:

fname = "filepath.tsv" все_в = [] все_выход = [] с open(fname) как f: для i, строка в перечислении (f): если я < 3:#первая строка print("Заголовок:", line.strip().split('\t')) продолжать поля = line.strip().split('\t') all_in.append([int(a.replace(",", "")) для полей[5:7]]) all_out.append([int(a.replace(",", "")) для полей[7:11]]) case_in = np.array(all_in, dtype = "uint64") target_out = np.array(all_out, dtype = "uint64") normalize_layer = tf.keras.layers.Normalization(axis=-1, name = "normalize_in") нормализовать_слой.адапт(все_в) normalize_out = tf.keras.layers.Normalization(axis=-1, name = "normalize_out") нормализовать_out.adapt(all_out) denormalize_out = tf.keras.layers.Normalization(axis=-1, invert = True, name = "denormalize_out") denormalize_out.adapt(all_out) масштабированный_выход = нормализовать_выход(все_выход) входы = нормализовать_слой (Вход (форма = 2)) x = Dense(6, input_dim = 2, активация = "сигмовидная", use_bias = True)(входные данные) x = Dense(4, активация = "сигмовидная")(x) y_4 = Dense(1, активация = "сигмовидная", name = "y_4")(x) наказание = Dense(3, активация = "сигмовидная", name = "наказание")(x) y_1 = Dense(1, активация = "сигмовидная", name = "y_1")(наказание) y_2 = Dense(1, активация = "сигмовидная", name = "y_2")(наказание) y_3 = Dense(1, активация = "сигмовидная", name="y_3")(наказание) модель = Модель (входы = входы, выходы = [y_1, y_2, y_3, y_4]) модель.компилировать( оптимизатор = SGD(learning_rate=0.01, Weight_decay=1e-6, импульс=0.9, нестеров=True), потеря = { "y_1": "MeanSquaredError", "y_2": "MeanSquaredError", "y_3": "MeanSquaredError", "y_4": "MeanSquaredError" }, метрики=['точность'] ) модель.подходит( дело_в, масштабированный_выход, пакетный_размер = 10,#после увеличения количества данных, увеличение эпохи = 300, подробный = 2, валидация_сплит = 0,8 ) для слоя в model.layers: print("===== СЛОЙ: ", Layer.name, " =====") если Layer.get_weights() != []: веса = Layer.get_weights()[0] смещения = Layer.get_weights()[1] print("веса:") печать (веса) print("предвзятости:") печать (предвзятость) еще: print("Вес: ", []) А после начала обучения модели точность вообще не меняется. Кроме того, пока я пытался это исправить, я что-то напутал, и мои данные с примерно 50 наборами данных превратились в один пакет операции .fit, хотя размер моего пакета говорит о 10. Я просто пробовал слишком много вещей, чтобы исправить свой код. тут и там в Интернете, и это еще больше все запутало.

Изначально я пытался нормализовать данные, как входные, так и выходные, что разморозило мою функцию потерь, но на функцию точности это никак не повлияло. Я также изменил функцию ReLU на сигмовидную функцию, потому что в какой-то момент показалось, что это может быть проблема с неработающим ReLU, поскольку смещения на моих слоях не обновлялись с их первоначальных 0. После этого я продолжал возиться с оптимизатором, функциями потерь и эпохами, но все безрезультатно. Буду признателен, если вы поможете мне заставить модуль работать по назначению, а также общие отзывы о коде тоже очень помогут.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»