Как реализовать уровень факторизации 2-го порядка в deeplearning4j? - PullRequest
0 голосов
/ 25 октября 2019

Я новичок в deeplearning4j и пытаюсь реализовать факторизацию 2-го порядка в deeplearning4j. Я использую граф вычислений для реализации следующей функции keras от python до scala. cat_2d - список выходных тензоров формы (Нет, k), где k - размерность вектора вложения. Я объединяю их как embed_2d и реализую факторизацию 2-го порядка. Тем не менее, я не уверен, как повторить то же самое в deeplearning4j в Scala. Пожалуйста, помогите.

Прикрепление эквивалентного кода Python.

def fm:

    embed_2d = Concatenate(axis=1, name = 'concat_embed_2d')(cat_2d)
    tensor_sum = Lambda(lambda x: K.sum(x, axis = 1), name = 'sum_of_tensors')
    tensor_square = Lambda(lambda x: multiply([x,x]), name = 'square_of_tensors')

    sum_of_embed = tensor_sum(embed_2d)
    square_of_embed = tensor_square(embed_2d)

    square_of_sum = Multiply()([sum_of_embed, sum_of_embed])
    sum_of_square = tensor_sum(square_of_embed)

    sub = Subtract()([square_of_sum, sum_of_square])
    sub = Lambda(lambda x: x*0.5)(sub)

    fm_2d = Reshape((1,), name = 'fm_2d_output')(tensor_sum(sub))

    return fm_2d, embed_2d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...