【问题标题】:blstm() : Missing required positional argumentsblstm() :缺少必需的位置参数
【发布时间】:2021-04-07 03:05:40
【问题描述】:

我正在使用 Python 3.7。使用此代码后出现以下错误

def blstm(inp_dim,vocab_size, embed_size, num_classes, learn_rate):   
    model = Sequential()
    model.add(Embedding(vocab_size, embed_size, input_length=inp_dim, trainable=True))
    model.add(Dropout(0.25))
    model.add(Bidirectional(LSTM(embed_size)))
    model.add(Dropout(0.50))
    model.add(Dense(num_classes, activation='softmax'))
    model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])
    
    return model


 

def get_model(m_type,inp_dim, vocab_size, embed_size, num_classes, learn_rate):
    if m_type == 'cnn':
        model = cnn(inp_dim, vocab_size, embed_size, num_classes, learn_rate)
    elif m_type == 'lstm':
        model = lstm_keras(inp_dim, vocab_size, embed_size, num_classes, learn_rate)
    elif m_type == "blstm":
        model = blstm(inp_dim)
    elif m_type == "blstm_attention":
        model = blstm_atten(inp_dim, vocab_size, embed_size, num_classes, learn_rate)
    else:
        print ("ERROR: Please specify a correst model")
        return None
    return model

我收到以下错误:

TypeError: blstm() missing 4 required positional arguments: 'vocab_size', 'embed_size', 'num_classes', and 'learn_rate'

我该如何解决这个问题?

【问题讨论】:

    标签: python keras lstm


    【解决方案1】:

    您的错误与深度学习无关。您创建了一个带有 5 个位置参数的函数:

    def blstm(inp_dim,vocab_size, embed_size, num_classes, learn_rate): 
    .........
    

    你传递了一个参数:

    ....
    model = blstm(inp_dim)
    ....
    

    这就是它抛出错误的原因。您应该为这 4 个可选参数设置默认值。

    在您的情况下,您似乎错误地将函数命名为 blstm 而不是 blstm_atten。小心点

    【讨论】:

      【解决方案2】:

      您可以在错误描述中找到解决方案。您调用blstm 时只有一个参数,但它需要5 个参数。

      elif m_type == "blstm":
          model = blstm(inp_dim, vocab_size, embed_size, num_classes, learn_rate)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-01
        • 2018-09-09
        • 2014-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-10
        相关资源
        最近更新 更多