(data_source, batch_size=10)
| 138 | |
| 139 | |
| 140 | def evaluate(data_source, batch_size=10): |
| 141 | # Turn on evaluation mode which disables dropout. |
| 142 | model.eval() |
| 143 | total_loss = 0 |
| 144 | ntokens = len(corpus.dictionary) |
| 145 | hidden = model.init_hidden(batch_size) |
| 146 | for i in range(0, data_source.size(0) - 1, args.bptt): |
| 147 | data, targets = get_batch(data_source, i, args, evaluation=True) |
| 148 | targets = targets.view(-1) |
| 149 | |
| 150 | log_prob, hidden = parallel_model(data, hidden) |
| 151 | loss = nn.functional.nll_loss(log_prob.view(-1, log_prob.size(2)), targets).data |
| 152 | |
| 153 | total_loss += loss * len(data) |
| 154 | |
| 155 | hidden = repackage_hidden(hidden) |
| 156 | return total_loss[0] / len(data_source) |
| 157 | |
| 158 | |
| 159 | def train(): |
no test coverage detected