Keras重复元素将ValueError List参数'indices'抛出到'SparseConcat'Op,长度0小于最小长度2

问题描述 投票:0回答:1

我正在尝试从可用的代码here中实现无监督方面提取的代码。Link至论文在ml_layers.py中实现Attention类时,在行的调用函数中出现错误

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

错误如下追溯(最近一次通话):

文件“”,第1行,在模型= 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 = Attention(name ='att_weights')([e_w,y_s])

文件“ /home/fractaluser/anaconda3/envs/venv_keras/lib/python3.5/site-packages/keras/engine/base_layer.py”,第457行,位于[[call输出= self.call(输入,** kwargs)

文件“ /home/fractaluser/Projects/workspace/UnsupervisedAspectExtraction/code/my_layers.py”,第58行,正在调用y = K.repeat_elements(y,self.steps,axis = 1)

File“ /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行,串联在一起返回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,shapes,axis,name = name))

File“ /home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/ops/gen_sparse_ops.py”,第911行,在sparse_concat中concat_dim = concat_dim,名称=名称)

文件“ /home/fractaluser/.local/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py”,行570,在_apply_op_helper中(输入名称,操作类型名称,len(值),num_attr.minimum))

ValueError:列表参数'indices'到'SparseConcat'Op,长度0比最小长度2短。

在互联网上找不到任何解决方案。请帮助

tensorflow keras unsupervised-learning aspect attention-model
1个回答
0
投票
我曾经有这个问题AttributeError:模块“ keras.backend”没有属性“ image_dim_ordering”,因此我必须修改K.image_dim_ordering()=='th'('tf')==> K.image_data_format()=='channels_first'(channels_last)

此后,我遇到了与您相同的问题。但是我的问题是仍然有一些地方不正确。我修改了所有地方后,问题就解决了。希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.