Hi everyone, I am trying to implement a crnn model.
A crnn model, if I understand correctly, consists of an encoder and decoder. The encoder reduces (usually) the image to a ( f(image_widht) x batch_size x hidden_dim ) sized tensor, this tensor is then fed to a decoder – a 1d recurrent neural network or maybe a few of them. Such models, as I know, are used in text recognition.
To ignore aligment the CTC loss is used.
Currently I try overfit a model using the CTC loss but fail. I use the baidu ctc-loss implementation.
I tried both the awins port and the SeanNaren port but they both give similar results – the model outputs just one letter, usually the the blank label. From this follows that the problem is in how I use the CTC loss together with PyTorch, but here is a project with a similar architecture which also makes use of CTC and I can’t find any major differences.
Why is this happening ? Did someone encountered similar problems ?
PS.
I tried to drop the hidden weights but it also did not work.
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torch.autograd import Variable
from warpctc_pytorch import CTCLoss
from torch.utils.data import TensorDataset, DataLoader
from functions.ctc import CTC, CTCLoss as CTCLoss2
import time, math
class RNNModel(nn.Module):
def __init__(self, ntoken, ninp, nhid):
super(RNNModel, self).__init__()
self.rnn = nn.LSTM(ninp, nhid)
self.decoder = nn.Linear(nhid, ntoken)
self.init_weights()
self.nhid = nhid
self.nlayers = 1
def init_weights(self):
initrange = 0.1
self.decoder.bias.data.fill_(0)
self.decoder.weight.data.uniform_(-initrange, initrange)
def forward(self, input, hidden):
output, hidden = self.rnn(input, hidden)
decoded = self.decoder(output.view(output.size(0)*output.size(1), output.size(2)))
return decoded.view(output.size(0), output.size(1), decoded.size(1)), hidden
def init_hidden(self, bsz):
weight = next(self.parameters()).data
return (Variable(weight.new(self.nlayers, bsz, self.nhid).zero_()),
Variable(weight.new(self.nlayers, bsz, self.nhid).zero_()))
def repackage_hidden(h):
"""Wraps hidden states in new Variables, to detach them from their history."""
if type(h) == Variable:
return Variable(h.data)
else:
return tuple(repackage_hidden(v) for v in h)
DS_SIZE=60
SEQ_LEN=100
DATA_DIM=10
OUT_SIZE=24
NTOKENS=11
BATCH_SIZE=8
data = torch.randn(DS_SIZE, SEQ_LEN, DATA_DIM)
labels = (torch.Tensor(DS_SIZE, OUT_SIZE).uniform_()*10).int()+1
ds = TensorDataset(data, labels)
dl = DataLoader(ds, batch_size=BATCH_SIZE, drop_last=True)
model = RNNModel(NTOKENS, DATA_DIM, 50)
criterion = CTCLoss2(blank_label=0)
log_interval = 100
optimizer = optim.SGD(model.parameters(), lr=0.0001, momentum=0.09)
label_to_char = lambda label: chr(96 + label) if label != 0 else '@'
def decode_probs(probs):
'''
probs - seqlen x batchsize x alphabet
'''
ixs = probs.max(2)[1].cpu() # seqlen x batchsize
res = [ ''.join(map(label_to_char, batch)) for batch in ixs.transpose(0,1) ]
return res, ixs
def train(epoch):
total_loss = 0
start_time = time.time()
ntokens = NTOKENS
lr = 0.0000001
hidden = model.init_hidden(BATCH_SIZE)
act_lens = torch.IntTensor(BATCH_SIZE).fill_(SEQ_LEN)
label_lens = torch.IntTensor(BATCH_SIZE).fill_(OUT_SIZE)
for it, (data, targets) in enumerate(dl):
hidden = repackage_hidden(hidden)
model.zero_grad()
output, hidden = model(Variable(data.transpose(0,1)), hidden)
output = F.softmax(output, dim=2)
output = output.transpose(1,0)
V = Variable
loss = criterion(output, V(targets.view(-1)), V(act_lens), V(label_lens))
loss.backward()
grad_norm = nn.utils.clip_grad_norm(model.parameters(), 200)
optimizer.step()
total_loss += loss.data
if it % log_interval == 0:
cur_loss = total_loss[0] / log_interval
elapsed = time.time() - start_time
print('| epoch {:3d} | lr {} | ms/batch {:5.2f} | '
'loss {:5.2f} | ppl {:8.2f} \n\t {} | {} '.format(
epoch, lr,
elapsed * 1000 / log_interval, cur_loss, math.exp(cur_loss),
decode_probs(output.transpose(1,0).data)[0][0],
''.join(map(label_to_char, targets[0]))
))
print(output[0,:,:])
print('-'*100)
total_loss = 0
start_time = time.time()
for epoch in range(1000):
train(epoch)
output
| epoch 0 | lr 1e-07 | ms/batch 0.47 | loss 1.61 | ppl 4.99
bbbbbjddgdgdgg@gggggggb@bbd@@@bggggg@ggggdbbbhgdfgggghggddggfggggbgggddhggg@@ddgggghbgg@gdgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0934 0.0877 0.0944 ... 0.0911 0.0873 0.0906
0.0924 0.0902 0.0973 ... 0.0923 0.0849 0.0920
0.0923 0.0870 0.0959 ... 0.0914 0.0827 0.0923
... ⋱ ...
0.0916 0.0861 0.0924 ... 0.0940 0.0890 0.0888
0.0875 0.0838 0.0922 ... 0.0944 0.0892 0.0873
0.0890 0.0855 0.0934 ... 0.0933 0.0888 0.0853
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 1 | lr 1e-07 | ms/batch 0.23 | loss 1.61 | ppl 4.99
bbbbbjddgdgdgg@gggggggb@bbd@@@@ggggg@gggg@bbbhgdfgggghggddggf@gggbgggddhggg@@ddgggghbgg@gdgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0936 0.0877 0.0944 ... 0.0911 0.0873 0.0906
0.0926 0.0902 0.0973 ... 0.0923 0.0849 0.0920
0.0926 0.0869 0.0958 ... 0.0914 0.0827 0.0923
... ⋱ ...
0.0919 0.0861 0.0924 ... 0.0940 0.0890 0.0887
0.0877 0.0838 0.0922 ... 0.0944 0.0892 0.0873
0.0892 0.0855 0.0933 ... 0.0933 0.0888 0.0852
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 2 | lr 1e-07 | ms/batch 0.26 | loss 1.61 | ppl 4.99
bbbbbjddgdgdgg@gggggggb@bb@@@@@ggggg@ggg@@bbbhgdfgggghggddggf@gggbggg@@hggg@@ddgggghbgg@gdgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0938 0.0876 0.0943 ... 0.0911 0.0873 0.0905
0.0929 0.0902 0.0973 ... 0.0922 0.0849 0.0920
0.0928 0.0869 0.0958 ... 0.0914 0.0827 0.0923
... ⋱ ...
0.0921 0.0861 0.0923 ... 0.0939 0.0889 0.0887
0.0880 0.0838 0.0922 ... 0.0944 0.0892 0.0873
0.0895 0.0855 0.0933 ... 0.0933 0.0888 0.0852
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 3 | lr 1e-07 | ms/batch 0.27 | loss 1.61 | ppl 4.99
bbbbbjddgdgdgg@gggggggb@bb@@@@@ggggg@ggg@@bbb@gd@gggghggddggf@gggbggg@@hggg@@ddgggghbgg@gdgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
1.00000e-02 *
9.4080 8.7617 9.4305 ... 9.1057 8.7280 9.0509
9.3086 9.0137 9.7264 ... 9.2206 8.4845 9.1952
9.3039 8.6902 9.5793 ... 9.1369 8.2644 9.2270
... ⋱ ...
9.2412 8.6040 9.2315 ... 9.3906 8.8911 8.8693
8.8245 8.3778 9.2143 ... 9.4360 8.9160 8.7226
8.9737 8.5438 9.3288 ... 9.3263 8.8743 8.5194
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 4 | lr 1e-07 | ms/batch 0.32 | loss 1.61 | ppl 4.99
@bbbbjddgdgdgg@gggggggb@bb@@@@@gggg@@ggg@@bbb@gd@gg@ghggddggf@gggbgg@@@hggg@@ddgggghbgg@@dgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
1.00000e-02 *
9.4313 8.7593 9.4280 ... 9.1034 8.7263 9.0486
9.3322 9.0113 9.7238 ... 9.2182 8.4827 9.1927
9.3278 8.6879 9.5765 ... 9.1345 8.2627 9.2243
... ⋱ ...
9.2678 8.6015 9.2287 ... 9.3880 8.8889 8.8664
8.8495 8.3756 9.2117 ... 9.4335 8.9140 8.7199
8.9997 8.5414 9.3261 ... 9.3237 8.8721 8.5168
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 5 | lr 1e-07 | ms/batch 0.30 | loss 1.61 | ppl 4.98
@bbbbjddgdgdgg@gggggggb@bb@@@@@gggg@@ggg@@bbb@gd@gg@ghgg@dggf@gggbgg@@@hggg@@ddgggghbg@@@dgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0945 0.0876 0.0943 ... 0.0910 0.0872 0.0905
0.0936 0.0901 0.0972 ... 0.0922 0.0848 0.0919
0.0935 0.0869 0.0957 ... 0.0913 0.0826 0.0922
... ⋱ ...
0.0929 0.0860 0.0923 ... 0.0939 0.0889 0.0886
0.0887 0.0837 0.0921 ... 0.0943 0.0891 0.0872
0.0903 0.0854 0.0932 ... 0.0932 0.0887 0.0851
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 6 | lr 1e-07 | ms/batch 0.26 | loss 1.61 | ppl 4.98
@bbbhjddgdgdgg@gggggggb@bb@@@@@gggg@@ggg@@bbb@gd@gg@ghgg@dggf@gggbgg@@@h@gg@@dd@gg@hbg@@@dgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0948 0.0875 0.0942 ... 0.0910 0.0872 0.0904
0.0938 0.0901 0.0972 ... 0.0921 0.0848 0.0919
0.0938 0.0868 0.0957 ... 0.0913 0.0826 0.0922
... ⋱ ...
0.0932 0.0860 0.0922 ... 0.0938 0.0888 0.0886
0.0890 0.0837 0.0921 ... 0.0943 0.0891 0.0871
0.0905 0.0854 0.0932 ... 0.0932 0.0887 0.0851
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 7 | lr 1e-07 | ms/batch 0.28 | loss 1.61 | ppl 4.98
@bbbhjddgdgdgg@gggggggb@bb@@@@@gggg@@ggg@@bbb@gd@gg@ghgg@dgg@@gggbgg@@@h@gg@@dd@gg@hbg@@@dgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0950 0.0875 0.0942 ... 0.0910 0.0872 0.0904
0.0940 0.0900 0.0972 ... 0.0921 0.0848 0.0919
0.0940 0.0868 0.0957 ... 0.0913 0.0826 0.0922
... ⋱ ...
0.0935 0.0859 0.0922 ... 0.0938 0.0888 0.0886
0.0893 0.0837 0.0920 ... 0.0943 0.0891 0.0871
0.0908 0.0853 0.0932 ... 0.0932 0.0887 0.0851
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 8 | lr 1e-07 | ms/batch 0.43 | loss 1.61 | ppl 4.98
@bbbhjddgdgdgg@ggggg@gb@bb@@@@@gggg@@ggg@@bbb@gd@gg@ghgg@dgg@@g@gbgg@@@@@gg@@dd@gg@hbg@@@dgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0953 0.0875 0.0942 ... 0.0909 0.0872 0.0904
0.0943 0.0900 0.0971 ... 0.0921 0.0848 0.0918
0.0942 0.0868 0.0957 ... 0.0913 0.0826 0.0921
... ⋱ ...
0.0938 0.0859 0.0922 ... 0.0938 0.0888 0.0885
0.0895 0.0837 0.0920 ... 0.0942 0.0891 0.0871
0.0911 0.0853 0.0932 ... 0.0931 0.0886 0.0851
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 9 | lr 1e-07 | ms/batch 0.30 | loss 1.61 | ppl 4.98
@bbbhjddgdgdgg@ggggg@gb@bb@@@@@gggg@@ggg@@bbb@gd@gg@ghgg@dgg@@g@gbgg@@@@@gg@@dd@gg@hbg@@@dgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0955 0.0875 0.0942 ... 0.0909 0.0872 0.0904
0.0945 0.0900 0.0971 ... 0.0921 0.0847 0.0918
0.0945 0.0868 0.0956 ... 0.0912 0.0825 0.0921
... ⋱ ...
0.0940 0.0859 0.0921 ... 0.0937 0.0888 0.0885
0.0898 0.0836 0.0920 ... 0.0942 0.0890 0.0871
0.0913 0.0853 0.0931 ... 0.0931 0.0886 0.0850
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 10 | lr 1e-07 | ms/batch 0.31 | loss 1.61 | ppl 4.98
@bbbhjddgdgdgg@ggggg@gb@bb@@@@@gggg@@gg@@@bb@@gd@gg@@hgg@dgg@@g@gbgg@@@@@gg@@d@@gg@hbg@@@dgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0957 0.0874 0.0941 ... 0.0909 0.0872 0.0903
0.0948 0.0900 0.0971 ... 0.0920 0.0847 0.0918
0.0947 0.0867 0.0956 ... 0.0912 0.0825 0.0921
... ⋱ ...
0.0943 0.0859 0.0921 ... 0.0937 0.0888 0.0885
0.0900 0.0836 0.0920 ... 0.0942 0.0890 0.0870
0.0916 0.0853 0.0931 ... 0.0931 0.0886 0.0850
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 11 | lr 1e-07 | ms/batch 0.27 | loss 1.61 | ppl 4.98
@bbbhjddgdgdgg@ggggg@gb@bb@@@@@gggg@@gg@@@bb@@gd@g@@@hgg@dgg@@g@gbgg@@@@@gg@@d@@gg@hbg@@@dgggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0960 0.0874 0.0941 ... 0.0909 0.0871 0.0903
0.0950 0.0899 0.0971 ... 0.0920 0.0847 0.0917
0.0950 0.0867 0.0956 ... 0.0912 0.0825 0.0921
... ⋱ ...
0.0946 0.0858 0.0921 ... 0.0937 0.0887 0.0885
0.0903 0.0836 0.0919 ... 0.0942 0.0890 0.0870
0.0919 0.0852 0.0931 ... 0.0931 0.0886 0.0850
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 12 | lr 1e-07 | ms/batch 0.25 | loss 1.61 | ppl 4.98
@bbbhjddgdgdgg@ggggg@gb@bb@@@@@gggg@@gg@@@b@@@gd@g@@@hgg@dg@@@@@gbgg@@@@@g@@@@@@gg@h@g@@@d@ggggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0962 0.0874 0.0941 ... 0.0908 0.0871 0.0903
0.0953 0.0899 0.0970 ... 0.0920 0.0847 0.0917
0.0952 0.0867 0.0955 ... 0.0912 0.0825 0.0920
... ⋱ ...
0.0949 0.0858 0.0921 ... 0.0937 0.0887 0.0884
0.0906 0.0836 0.0919 ... 0.0941 0.0890 0.0870
0.0921 0.0852 0.0930 ... 0.0930 0.0885 0.0849
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 13 | lr 1e-07 | ms/batch 0.25 | loss 1.61 | ppl 4.98
@bbbhj@dg@gdgg@ggggg@g@@@@@@@@@gggg@@gg@@@b@@@gd@g@@@hgg@dg@@@@@g@gg@@@@@g@@@@@@@g@h@g@@@d@@gggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0965 0.0874 0.0940 ... 0.0908 0.0871 0.0903
0.0955 0.0899 0.0970 ... 0.0920 0.0847 0.0917
0.0955 0.0867 0.0955 ... 0.0911 0.0825 0.0920
... ⋱ ...
0.0951 0.0858 0.0920 ... 0.0936 0.0887 0.0884
0.0908 0.0836 0.0919 ... 0.0941 0.0890 0.0869
0.0924 0.0852 0.0930 ... 0.0930 0.0885 0.0849
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 14 | lr 1e-07 | ms/batch 0.24 | loss 1.61 | ppl 4.98
@b@bhj@dg@@@gg@g@ggg@@@@@@@@@@@gggg@@gg@@@b@@@gd@g@@@hgg@dg@@@@@g@gg@@@@@g@@@@@@@g@h@g@@@d@@gggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0967 0.0873 0.0940 ... 0.0908 0.0871 0.0902
0.0958 0.0899 0.0970 ... 0.0919 0.0846 0.0917
0.0957 0.0866 0.0955 ... 0.0911 0.0824 0.0920
... ⋱ ...
0.0954 0.0858 0.0920 ... 0.0936 0.0887 0.0884
0.0911 0.0835 0.0918 ... 0.0941 0.0889 0.0869
0.0927 0.0852 0.0930 ... 0.0930 0.0885 0.0849
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 15 | lr 1e-07 | ms/batch 0.26 | loss 1.61 | ppl 4.98
@b@bh@@dg@@@gg@g@ggg@@@@@@@@@@@gggg@@@g@@@@@@@gd@g@@@hgg@@g@@@@@g@gg@@@@@g@@@@@@@g@h@@@@@@@@gggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0970 0.0873 0.0940 ... 0.0908 0.0871 0.0902
0.0960 0.0898 0.0969 ... 0.0919 0.0846 0.0916
0.0960 0.0866 0.0955 ... 0.0911 0.0824 0.0919
... ⋱ ...
0.0957 0.0857 0.0920 ... 0.0936 0.0886 0.0883
0.0913 0.0835 0.0918 ... 0.0941 0.0889 0.0869
0.0930 0.0851 0.0930 ... 0.0929 0.0885 0.0849
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 16 | lr 1e-07 | ms/batch 0.26 | loss 1.61 | ppl 4.98
@b@bh@@d@@@@gg@g@ggg@@@@@@@@@@@gggg@@@g@@@@@@@gd@g@@@hgg@@g@@@@@g@@g@@@@@g@@@@@@@g@h@@@@@@@@gggggggg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0972 0.0873 0.0940 ... 0.0907 0.0870 0.0902
0.0963 0.0898 0.0969 ... 0.0919 0.0846 0.0916
0.0962 0.0866 0.0954 ... 0.0911 0.0824 0.0919
... ⋱ ...
0.0960 0.0857 0.0919 ... 0.0936 0.0886 0.0883
0.0916 0.0835 0.0918 ... 0.0940 0.0889 0.0869
0.0932 0.0851 0.0929 ... 0.0929 0.0885 0.0848
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 17 | lr 1e-07 | ms/batch 0.27 | loss 1.61 | ppl 4.98
@b@@h@@d@@@@g@@g@ggg@@@@@@@@@@@@gg@@@@g@@@@@@@gd@g@@@hgg@@@@@@@@@@@g@@@@@@@@@@@@@g@h@@@@@@@@ggggg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0974 0.0873 0.0939 ... 0.0907 0.0870 0.0902
0.0965 0.0898 0.0969 ... 0.0919 0.0846 0.0916
0.0965 0.0866 0.0954 ... 0.0910 0.0824 0.0919
... ⋱ ...
0.0963 0.0857 0.0919 ... 0.0935 0.0886 0.0883
0.0919 0.0835 0.0918 ... 0.0940 0.0889 0.0868
0.0935 0.0851 0.0929 ... 0.0929 0.0884 0.0848
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 18 | lr 1e-07 | ms/batch 0.27 | loss 1.61 | ppl 4.98
@b@@h@@@@@@@@@@@@ggg@@@@@@@@@@@@gg@@@@g@@@@@@@gd@g@@@h@g@@@@@@@@@@@g@@@@@@@@@@@@@g@h@@@@@@@@ggggg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0977 0.0872 0.0939 ... 0.0907 0.0870 0.0902
0.0968 0.0898 0.0969 ... 0.0918 0.0846 0.0916
0.0968 0.0866 0.0954 ... 0.0910 0.0824 0.0919
... ⋱ ...
0.0966 0.0857 0.0919 ... 0.0935 0.0886 0.0882
0.0922 0.0834 0.0917 ... 0.0940 0.0888 0.0868
0.0938 0.0851 0.0929 ... 0.0929 0.0884 0.0848
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 19 | lr 1e-07 | ms/batch 0.26 | loss 1.61 | ppl 4.98
@@@@h@@@@@@@@@@@@g@g@@@@@@@@@@@@gg@@@@g@@@@@@@gd@@@@@h@g@@@@@@@@@@@g@@@@@@@@@@@@@g@h@@@@@@@@g@ggg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0980 0.0872 0.0939 ... 0.0907 0.0870 0.0901
0.0970 0.0897 0.0968 ... 0.0918 0.0846 0.0915
0.0970 0.0865 0.0953 ... 0.0910 0.0824 0.0918
... ⋱ ...
0.0969 0.0856 0.0919 ... 0.0935 0.0885 0.0882
0.0924 0.0834 0.0917 ... 0.0939 0.0888 0.0868
0.0941 0.0850 0.0928 ... 0.0928 0.0884 0.0847
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 20 | lr 1e-07 | ms/batch 0.26 | loss 1.60 | ppl 4.98
@@@@h@@@@@@@@@@@@g@g@@@@@@@@@@@@gg@@@@g@@@@@@@gd@@@@@h@g@@@@@@@@@@@g@@@@@@@@@@@@@g@h@@@@@@@@@@ggg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0982 0.0872 0.0939 ... 0.0906 0.0870 0.0901
0.0973 0.0897 0.0968 ... 0.0918 0.0845 0.0915
0.0973 0.0865 0.0953 ... 0.0910 0.0823 0.0918
... ⋱ ...
0.0971 0.0856 0.0918 ... 0.0934 0.0885 0.0882
0.0927 0.0834 0.0917 ... 0.0939 0.0888 0.0867
0.0944 0.0850 0.0928 ... 0.0928 0.0884 0.0847
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 21 | lr 1e-07 | ms/batch 0.26 | loss 1.60 | ppl 4.98
@@@@h@@@@@@@@@@@@g@@@@@@@@@@@@@@gg@@@@g@@@@@@@gd@@@@@h@g@@@@@@@@@@@g@@@@@@@@@@@@@@@h@@@@@@@@@@ggg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0985 0.0872 0.0938 ... 0.0906 0.0870 0.0901
0.0975 0.0897 0.0968 ... 0.0918 0.0845 0.0915
0.0975 0.0865 0.0953 ... 0.0909 0.0823 0.0918
... ⋱ ...
0.0974 0.0856 0.0918 ... 0.0934 0.0885 0.0882
0.0930 0.0834 0.0917 ... 0.0939 0.0888 0.0867
0.0947 0.0850 0.0928 ... 0.0928 0.0883 0.0847
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 22 | lr 1e-07 | ms/batch 0.40 | loss 1.60 | ppl 4.98
@@@@h@@@@@@@@@@@@g@@@@@@@@@@@@@@gg@@@@g@@@@@@@gd@@@@@h@@@@@@@@@@@@@g@@@@@@@@@@@@@@@h@@@@@@@@@@ggg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0987 0.0871 0.0938 ... 0.0906 0.0869 0.0900
0.0978 0.0897 0.0967 ... 0.0917 0.0845 0.0915
0.0978 0.0865 0.0953 ... 0.0909 0.0823 0.0917
... ⋱ ...
0.0977 0.0855 0.0918 ... 0.0934 0.0885 0.0881
0.0933 0.0833 0.0916 ... 0.0939 0.0888 0.0867
0.0949 0.0850 0.0928 ... 0.0928 0.0883 0.0847
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 23 | lr 1e-07 | ms/batch 0.26 | loss 1.60 | ppl 4.98
@@@@@@@@@@@@@@@@@g@@@@@@@@@@@@@@gg@@@@g@@@@@@@gd@@@@@h@@@@@@@@@@@@@g@@@@@@@@@@@@@@@h@@@@@@@@@@ggg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0990 0.0871 0.0938 ... 0.0906 0.0869 0.0900
0.0981 0.0896 0.0967 ... 0.0917 0.0845 0.0914
0.0981 0.0864 0.0952 ... 0.0909 0.0823 0.0917
... ⋱ ...
0.0980 0.0855 0.0917 ... 0.0934 0.0885 0.0881
0.0935 0.0833 0.0916 ... 0.0938 0.0887 0.0867
0.0952 0.0849 0.0927 ... 0.0927 0.0883 0.0846
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 24 | lr 1e-07 | ms/batch 0.26 | loss 1.60 | ppl 4.98
@@@@@@@@@@@@@@@@@g@@@@@@@@@@@@@@g@@@@@g@@@@@@@gd@@@@@@@@@@@@@@@@@@@g@@@@@@@@@@@@@@@h@@@@@@@@@@@gg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0992 0.0871 0.0937 ... 0.0905 0.0869 0.0900
0.0983 0.0896 0.0967 ... 0.0917 0.0845 0.0914
0.0983 0.0864 0.0952 ... 0.0908 0.0823 0.0917
... ⋱ ...
0.0983 0.0855 0.0917 ... 0.0933 0.0884 0.0881
0.0938 0.0833 0.0916 ... 0.0938 0.0887 0.0866
0.0955 0.0849 0.0927 ... 0.0927 0.0883 0.0846
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 25 | lr 1e-07 | ms/batch 0.27 | loss 1.60 | ppl 4.98
@@@@@@@@@@@@@@@@@g@@@@@@@@@@@@@@g@@@@@@@@@@@@@gd@@@@@@@@@@@@@@@@@@@g@@@@@@@@@@@@@@@@@@@@@@@@@@@gg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0995 0.0871 0.0937 ... 0.0905 0.0869 0.0900
0.0986 0.0896 0.0967 ... 0.0917 0.0844 0.0914
0.0986 0.0864 0.0952 ... 0.0908 0.0822 0.0917
... ⋱ ...
0.0986 0.0855 0.0917 ... 0.0933 0.0884 0.0880
0.0941 0.0833 0.0915 ... 0.0938 0.0887 0.0866
0.0958 0.0849 0.0927 ... 0.0927 0.0882 0.0846
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 26 | lr 1e-07 | ms/batch 0.26 | loss 1.60 | ppl 4.97
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@gd@@@@@@@@@@@@@@@@@@@g@@@@@@@@@@@@@@@@@@@@@@@@@@@gg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.0998 0.0870 0.0937 ... 0.0905 0.0869 0.0899
0.0989 0.0896 0.0966 ... 0.0916 0.0844 0.0913
0.0989 0.0864 0.0951 ... 0.0908 0.0822 0.0916
... ⋱ ...
0.0989 0.0854 0.0916 ... 0.0933 0.0884 0.0880
0.0944 0.0832 0.0915 ... 0.0938 0.0887 0.0866
0.0961 0.0848 0.0926 ... 0.0926 0.0882 0.0845
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 27 | lr 1e-07 | ms/batch 0.40 | loss 1.60 | ppl 4.97
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@gd@@@@@@@@@@@@@@@@@@@g@@@@@@@@@@@@@@@@@@@@@@@@@@@gg@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.1000 0.0870 0.0937 ... 0.0905 0.0868 0.0899
0.0991 0.0895 0.0966 ... 0.0916 0.0844 0.0913
0.0991 0.0863 0.0951 ... 0.0908 0.0822 0.0916
... ⋱ ...
0.0992 0.0854 0.0916 ... 0.0932 0.0884 0.0880
0.0947 0.0832 0.0915 ... 0.0937 0.0886 0.0865
0.0964 0.0848 0.0926 ... 0.0926 0.0882 0.0845
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 28 | lr 1e-07 | ms/batch 0.41 | loss 1.60 | ppl 4.97
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@gd@@@@@@@@@@@@@@@@@@@g@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.1003 0.0870 0.0936 ... 0.0904 0.0868 0.0899
0.0994 0.0895 0.0966 ... 0.0916 0.0844 0.0913
0.0994 0.0863 0.0951 ... 0.0907 0.0822 0.0916
... ⋱ ...
0.0995 0.0854 0.0916 ... 0.0932 0.0883 0.0879
0.0949 0.0832 0.0914 ... 0.0937 0.0886 0.0865
0.0967 0.0848 0.0926 ... 0.0926 0.0882 0.0845
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 29 | lr 1e-07 | ms/batch 0.45 | loss 1.60 | ppl 4.97
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@gd@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@gg | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.1005 0.0870 0.0936 ... 0.0904 0.0868 0.0899
0.0997 0.0895 0.0965 ... 0.0915 0.0844 0.0913
0.0997 0.0863 0.0950 ... 0.0907 0.0822 0.0915
... ⋱ ...
0.0998 0.0853 0.0916 ... 0.0932 0.0883 0.0879
0.0952 0.0832 0.0914 ... 0.0937 0.0886 0.0865
0.0970 0.0848 0.0925 ... 0.0926 0.0881 0.0844
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 30 | lr 1e-07 | ms/batch 0.29 | loss 1.60 | ppl 4.97
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@gd@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@g@ | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.1008 0.0869 0.0936 ... 0.0904 0.0868 0.0898
0.0999 0.0894 0.0965 ... 0.0915 0.0843 0.0912
0.1000 0.0863 0.0950 ... 0.0907 0.0821 0.0915
... ⋱ ...
0.1002 0.0853 0.0915 ... 0.0931 0.0883 0.0879
0.0955 0.0831 0.0914 ... 0.0936 0.0886 0.0864
0.0973 0.0847 0.0925 ... 0.0925 0.0881 0.0844
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 31 | lr 1e-07 | ms/batch 0.23 | loss 1.60 | ppl 4.97
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@gd@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@g@ | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.1011 0.0869 0.0935 ... 0.0904 0.0868 0.0898
0.1002 0.0894 0.0965 ... 0.0915 0.0843 0.0912
0.1002 0.0862 0.0950 ... 0.0907 0.0821 0.0915
... ⋱ ...
0.1005 0.0853 0.0915 ... 0.0931 0.0882 0.0878
0.0958 0.0831 0.0914 ... 0.0936 0.0885 0.0864
0.0976 0.0847 0.0925 ... 0.0925 0.0881 0.0844
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 32 | lr 1e-07 | ms/batch 0.35 | loss 1.60 | ppl 4.97
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@gd@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@g@ | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.1013 0.0869 0.0935 ... 0.0903 0.0867 0.0898
0.1005 0.0894 0.0964 ... 0.0915 0.0843 0.0912
0.1005 0.0862 0.0949 ... 0.0906 0.0821 0.0914
... ⋱ ...
0.1008 0.0853 0.0915 ... 0.0931 0.0882 0.0878
0.0961 0.0831 0.0913 ... 0.0936 0.0885 0.0864
0.0979 0.0847 0.0924 ... 0.0925 0.0881 0.0844
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 33 | lr 1e-07 | ms/batch 0.44 | loss 1.60 | ppl 4.97
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@g@ | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.1016 0.0869 0.0935 ... 0.0903 0.0867 0.0898
0.1008 0.0894 0.0964 ... 0.0914 0.0843 0.0911
0.1008 0.0862 0.0949 ... 0.0906 0.0821 0.0914
... ⋱ ...
0.1011 0.0852 0.0914 ... 0.0930 0.0882 0.0878
0.0964 0.0831 0.0913 ... 0.0936 0.0885 0.0863
0.0982 0.0846 0.0924 ... 0.0924 0.0880 0.0843
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------
| epoch 34 | lr 1e-07 | ms/batch 0.26 | loss 1.60 | ppl 4.97
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@g@ | bjdbeiabaeagdcbdehcffgja
Variable containing:
0.1019 0.0868 0.0935 ... 0.0903 0.0867 0.0897
0.1010 0.0893 0.0964 ... 0.0914 0.0842 0.0911
0.1011 0.0861 0.0949 ... 0.0906 0.0821 0.0914
... ⋱ ...
0.1014 0.0852 0.0914 ... 0.0930 0.0882 0.0877
0.0967 0.0830 0.0913 ... 0.0935 0.0885 0.0863
0.0986 0.0846 0.0924 ... 0.0924 0.0880 0.0843
[torch.FloatTensor of size 100x11]
----------------------------------------------------------------------------------------------------