(line)
| 105 | |
| 106 | |
| 107 | def train(line): |
| 108 | input = str2tensor(line[:-1]) |
| 109 | target = str2tensor(line[1:]) |
| 110 | |
| 111 | hidden = decoder.init_hidden() |
| 112 | decoder_in = input[0] |
| 113 | loss = 0 |
| 114 | |
| 115 | for c in range(len(input)): |
| 116 | output, hidden = decoder(decoder_in, hidden) |
| 117 | loss += criterion(output, target[c]) |
| 118 | decoder_in = output.max(1)[1] |
| 119 | |
| 120 | decoder.zero_grad() |
| 121 | loss.backward() |
| 122 | decoder_optimizer.step() |
| 123 | |
| 124 | return loss.data[0] / len(input) |
| 125 | |
| 126 | if __name__ == '__main__': |
| 127 |
no test coverage detected