Keras повторяет элементы, выбрасывая аргумент ValueError List 'indexes' в 'SparseConcat' Op с длиной 0 меньше минимальной длины 2 - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь реализовать код для извлечения неконтролируемого аспекта из доступного кода здесь . Ссылка на бумагу
При реализации класса Attention в ml_layers.py я получаю сообщение об ошибке в функции вызова в строке

y = K.repeat_elements(y, self.steps, axis=1)    

Полный код функции приведен ниже:

def call(self, input_tensor, mask=None):
    x = input_tensor[0]
    y = input_tensor[1]
    mask = mask[0]

    y = K.transpose(K.dot(self.W, K.transpose(y)))
    y = K.expand_dims(y, axis=-2)
    y = K.repeat_elements(y, self.steps, axis=1)
    eij = K.sum(x*y, axis=-1)

    if self.bias:
        b = K.repeat_elements(self.b, self.steps, axis=0)
        eij += b

    eij = K.tanh(eij)
    a = K.exp(eij)

    if mask is not None:
        a *= K.cast(mask, K.floatx())

    a /= K.cast(K.sum(a, axis=1, keepdims=True) + K.epsilon(), K.floatx())
    return a

Ошибка заключается в следующем Traceback (последний вызов последний):

Файл "", строка 1, в model = create_model (ortho_reg, neg_size, emb_dim, aspect_size, emb_path, maxlen, vocab)

Файл "/home/fractaluser/Projects/workspace/UnsupervisedAspectExtraction/code/model.py", строка 32, в create_model att_weights = Внимание (name = 'att_weights') ([e_w, y_s])

Файл "/home/fractaluser/anaconda3/envs/venv_keras/lib/python3.5/site-packages/keras/engine/base_layer.py", строка 457, в вызов output = self.call (входные данные, ** кваргс)

Файл "/home/fractaluser/Projects/workspace/UnsupervisedAspectExtraction/code/my_layers.py", строка 58, в вызове y = K.repeat_elements (y, self.steps, axis = 1)

Файл "/home/fractaluser/anaconda3/envs/venv_keras/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py", строка 2093, в repeat_elements возврат конкатенации (x_rep, ось)

Файл "/home/fractaluser/anaconda3/envs/venv_keras/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py", строка 1954, в сцепленном виде return tf.sparse_concat (ось, тензоры)

Файл "/home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/util/deprecation.py", строка 488, в new_func return func (* args, ** kwargs)

Файл "/home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/ops/sparse_ops.py", строка 316, в sparse_concat gen_sparse_ops.sparse_concat (inds, vals, shape, axis, name = name))

Файл "/home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/ops/gen_sparse_ops.py", строка 911, в sparse_concat concat_dim = concat_dim, name = name)

Файл "/home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", строка 570, в _apply_op_helper (input_name, op_type_name, len (values), num_attr.minimum))

ValueError: Перечислить аргумент 'indexes' в 'SparseConcat' Op с длиной 0 меньше минимальной длины 2.

Не удалось найти решение в интернете. Пожалуйста, помогите

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