Пользовательская функция потерь Keras - ValueError: у операции есть `None` для градиента - PullRequest
0 голосов
/ 26 октября 2019

Я хочу создать пользовательскую функцию потерь, но всегда получаю одну и ту же ошибку: "ValueError: Операция имеет None для градиента. Пожалуйста, убедитесь, что все ваши операции имеют определенный градиент (то есть являются дифференцируемыми). Общие операциибез градиента: K.argmax, K.round, K.eval. "

Я создал простой пример, в котором моя функция потерь вычисляется в y_true.

def build_shared_model(inputs_count, outputs_count):
    x = y = Input(shape=(inputs_count,))
    y = Dense(16)(x)
    y = Activation('relu')(y)
    y = Dense(16)(y)
    y = Activation('relu')(y)
    y = Dense(outputs_count)(y)

    def custom_loss(y_true, y_pred):
        return y_true

    model = Model(x, y)
    model.compile(Adam(lr=0.001), loss=custom_loss)
    return model

if __name__ == '__main__':
    network = build_shared_model(4, 1)

    x = np.zeros((10, 4)) # dump input instead real inputs 
    y = np.zeros(10) # dump y_true instead some equation

    network.fit(x, y, verbose=0)

Я не знаюотремонтировать его. Вы можете мне помочь?

...