[英]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.