Как я могу реализовать эту пользовательскую функцию потерь в Keras?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу реализовать эту пользовательскую функцию потерь в Keras?

Сообщение Anonymous »


Я пытаюсь реализовать собственную функцию потерь в своей нейронной сети, которая выглядела бы так, если бы тензоры были вместо этого пустыми массивами:

def custom_loss(y_true, y_pred): активирован = y_pred[y_true > 1] return np.abs(activated.mean() - активированный.std())/активированный.std() y имеют форму (batch_size, 1); то есть это скалярный вывод для каждой входной строки.

obs: этот пост (Преобразование Tensor в np.array с использованием K.eval() в Keras возвращает InvalidArgumentError) дал мне начальное направление, по которому двигаться дальше.

Изменить:

Это воспроизводимая настройка, к которой я пытаюсь применить пользовательскую функцию потерь:

импортировать numpy как np импортировать тензорный поток как tf из тензорного потока импорта кераса из слоев импорта tensorflow.keras X = np.random.normal(0, 1, (256, 5)) Y = np.random.normal(0, 1, (256, 1)) модель = keras.Sequential([ слои.Плотный(1), ]) model.compile(optimizer='adam', loss=custom_loss) model.fit(X, Y) .fit() в последней строке выдает ошибку AttributeError: объект «Tensor» не имеет атрибута «mean», если я определяю custom_loss< /code> как указано выше в моем вопросе.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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