MixPoet
MixPoet copied to clipboard
RuntimeError: 'lengths' argument should be a 1D CPU int64 tensor, but got 1D cuda:0 Long tensor
python train.py
hyper-patameters:
HParams(vocab_size=7024, pad_idx=0, bos_idx=3, emb_size=256, hidden_size=512, context_size=512, latent_size=256, factor_emb_size=64, n_class1=3, n_class2=2, key_len=4, sens_num=4, sen_len=9, poem_len=30, batch_size=128, drop_ratio=0.15, weight_decay=0.00025, clip_grad_norm=2.0, max_lr=0.0008, min_lr=5e-08, warmup_steps=6000, ndis=3, min_tr=0.85, burn_down_tr=3, decay_tr=6, tau_annealing_steps=6000, min_tau=0.01, rec_warm_steps=1500, noise_decay_steps=8500, log_steps=200, sample_num=1, max_epoches=12, save_epoches=3, validate_epoches=1, fbatch_size=64, fmax_epoches=3, fsave_epoches=1, vocab_path='../corpus/vocab.pickle', ivocab_path='../corpus/ivocab.pickle', train_data='../corpus/semi_train.pickle', valid_data='../corpus/semi_valid.pickle', model_dir='../checkpoint/', data_dir='../data/', train_log_path='../log/mix_train_log.txt', valid_log_path='../log/mix_valid_log.txt', fig_log_path='../log/', corrupt_ratio=0.1, dae_epoches=10, dae_batch_size=128, dae_max_lr=0.0008, dae_min_lr=5e-08, dae_warmup_steps=4500, dae_min_tr=0.85, dae_burn_down_tr=2, dae_decay_tr=6, dae_log_steps=300, dae_validate_epoches=1, dae_save_epoches=2, dae_train_log_path='../log/dae_train_log.txt', dae_valid_log_path='../log/dae_valid_log.txt', cl_batch_size=64, cl_epoches=10, cl_max_lr=0.0008, cl_min_lr=5e-08, cl_warmup_steps=800, cl_log_steps=100, cl_validate_epoches=1, cl_save_epoches=2, cl_train_log_path='../log/cl_train_log.txt', cl_valid_log_path='../log/cl_valid_log.txt')
please check the hyper-parameters, and then press any key to continue >ok
ok
dae pretraining...
layers.embed.weight torch.Size([7024, 256])
layers.encoder.rnn.weight_ih_l0 torch.Size([1536, 256])
layers.encoder.rnn.weight_hh_l0 torch.Size([1536, 512])
layers.encoder.rnn.bias_ih_l0 torch.Size([1536])
layers.encoder.rnn.bias_hh_l0 torch.Size([1536])
layers.encoder.rnn.weight_ih_l0_reverse torch.Size([1536, 256])
layers.encoder.rnn.weight_hh_l0_reverse torch.Size([1536, 512])
layers.encoder.rnn.bias_ih_l0_reverse torch.Size([1536])
layers.encoder.rnn.bias_hh_l0_reverse torch.Size([1536])
layers.decoder.rnn.weight_ih_l0 torch.Size([1536, 512])
layers.decoder.rnn.weight_hh_l0 torch.Size([1536, 512])
layers.decoder.rnn.bias_ih_l0 torch.Size([1536])
layers.decoder.rnn.bias_hh_l0 torch.Size([1536])
layers.word_encoder.rnn.weight_ih_l0 torch.Size([256, 256])
layers.word_encoder.rnn.weight_hh_l0 torch.Size([256, 256])
layers.word_encoder.rnn.bias_ih_l0 torch.Size([256])
layers.word_encoder.rnn.bias_hh_l0 torch.Size([256])
layers.word_encoder.rnn.weight_ih_l0_reverse torch.Size([256, 256])
layers.word_encoder.rnn.weight_hh_l0_reverse torch.Size([256, 256])
layers.word_encoder.rnn.bias_ih_l0_reverse torch.Size([256])
layers.word_encoder.rnn.bias_hh_l0_reverse torch.Size([256])
layers.out_proj.weight torch.Size([7024, 512])
layers.out_proj.bias torch.Size([7024])
layers.map_x.mlp.linear_0.weight torch.Size([512, 768])
layers.map_x.mlp.linear_0.bias torch.Size([512])
layers.context.conv.weight torch.Size([512, 512, 3])
layers.context.conv.bias torch.Size([512])
layers.context.linear.weight torch.Size([512, 1024])
layers.context.linear.bias torch.Size([512])
layers.dec_init_pre.mlp.linear_0.weight torch.Size([506, 1536])
layers.dec_init_pre.mlp.linear_0.bias torch.Size([506])
params num: 31
building data for dae...
193461
34210
train batch num: 1512
valid batch num: 268
Traceback (most recent call last):
File "train.py", line 79, in
You can change the following
packed = torch.nn.utils.rnn.pack_padded_sequence(embed_inps,
input_lens, batch_first=True, enforce_sorted=False)
in file layer.py
line 56 to
packed = torch.nn.utils.rnn.pack_padded_sequence(embed_inps,
input_lens.cpu(), batch_first=True, enforce_sorted=False)
I think this is a bug introduced when you are using a newer version of PyTorch.