繁体   English   中英

blstm():缺少所需的位置 arguments

[英]blstm() : Missing required positional arguments

我正在使用 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'

我该如何解决这个问题?

您的错误与深度学习无关。 您创建了一个具有 5 个位置 arguments 的 function:

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

你正在传递一个参数:

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

这就是它抛出错误的原因。 您应该有这 4 个可选 arguments 的默认值。

在您的情况下,您似乎错误地将 function 命名为blstm而不是blstm_atten 小心那个

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM