簡體   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