Problem
在运行一下代码时,会报此错误:
too many values to unpack (expected 2)
embed_size, num_hiddens, num_layers, dropout = 32, 32, 2, 0.1
batch_size, num_steps = 64, 10
lr, num_epochs, device = 0.005, 300, d2l.try_gpu()
train_iter, src_vocab, tgt_vocab = d2l.load_data_nmt(batch_size, num_steps)
encoder = Seq2SeqEncoder(len(src_vocab), embed_size, num_hiddens, num_layers,
dropout)
decoder = Seq2SeqDecoder(len(tgt_vocab), embed_size, num_hiddens, num_layers,
dropout)
net = d2l.EncoderDecoder(encoder, decoder)
train_seq2seq(net, train_iter, lr, num_epochs, tgt_vocab, device)
原因:d2l.torch里,EncoderDecoder的返回值只返回了一个值,使得yhat, 有一个没有获得赋值。
解决办法:删掉d2l.torch的EncoderDecoder中返回值的[0],或者去掉, _
。
Comments NOTHING