PyTorch循环神经网络的应用

一、实施过程

问题:如下图所示,根据英文名字,通过RNN训练,得出该名字属于哪个国家。
PyTorch循环神经网络的应用

1、导包

导入代码所需的包,代码如下:

import torch
import matplotlib.pyplot as plt
from torch.utils.data import Dataset,DataLoader
from torch.nn.utils.rnn import pad_sequence, pack_padded_sequence, pack_sequence, pad_packed_sequence
import gzip,csv,math,time
import os
os.environ["KMP_DUPLICATE_LIB_OK"]  =  "TRUE"

2、设置参数

设置需要的参数,代码如下:

# parameters
HIDDEN_SIZE = 100		# 隐藏层个数
BATCH_SIZE = 256    # 批尺寸大小
N_LAYER = 2				# RNN层数
N_EPOCHS = 100		  # 训练和测试的最大迭代次数
N_CHARS = 128		  # 用于表示英文名字的ASCII码值个数
USE_GPU = True		  # 是(否)使用GPU

3、准备数据

# 准备数据
class NameDataSet(Dataset):
    def __init__(self, is_train_set=True):
        filename = 'G:/datasets/names/names_train.csv.gz' if is_train_set else 'G:/datasets/names/names_test.csv.gz'
        with gzip.open(filename, 'rt') as f:
            reader = csv.reader(f)
            rows = list(reader)
        self.names = [row[0] for row in rows]  # 名字信息
        self.len = len(self.names)  # 名字数量
        self.countries = [row[1] for row in rows]  # 国家信息
        self.country_list = list(sorted(set(self.countries)))  # 返回无重复的国家列表
        self.country_dict = self.getCountryDict()  # 国家字典:根据国家名,获取对应序号
        self.country_num = len(self.country_list)  # 国家总数

    def __getitem__(self, index):
        return self.names[index], self.country_dict[self.countries[index]]

    def __len__(self):
        return self.len

    def getCountryDict(self):
        country_dict = dict()
        for idx, country_name in enumerate(self.country_list, 0):
            country_dict[country_name] = idx  # 字典: {'country_name':idx}
        return country_dict

    def idx2country(self, index):
        return self.country_list[index]

    def getCountriesNum(self):
        return self.country_num

trainset = NameDataSet(is_train_set=True)
trainloader = DataLoader(trainset,batch_size=BATCH_SIZE,shuffle=True)
testset = NameDataSet(is_train_set=False)
testloader = DataLoader(testset,batch_size=BATCH_SIZE,shuffle=False)

N_COUNTRY = trainset.getCountriesNum()		# 国家总数,即最后要输出的分类数

4、模型设计

# 设计模型
class RNNClassifier(torch.nn.Module):
    def __init__(self, input_size, hidden_size, output_size, n_layers=1, bidirectional=True):
        super(RNNClassifier, self).__init__()
        self.hidden_size = hidden_size
        self.n_layers = n_layers
        self.n_directions = 2 if bidirectional else 1

        self.embedding = torch.nn.Embedding(input_size, hidden_size)
        self.gru = torch.nn.GRU(hidden_size, hidden_size, n_layers, bidirectional=bidirectional)

        self.fc = torch.nn.Linear(hidden_size * self.n_directions, output_size)  # 双向RNN

    def _init_hidden(self, batch_size):
        hidden = torch.zeros(self.n_layers * self.n_directions, batch_size, self.hidden_size)
        return create_tensor(hidden)

    def forward(self, input, seq_lengths):
        # input shape: B x S -> S x B
        input = input.t()
        batch_size = input.size(1)

        hidden = self._init_hidden(batch_size)  # 创建初始隐层
        embedding = self.embedding(input)  # 嵌入 (seqLen,batch_size,hidden_size)

        # pack them up
        gru_input = pack_padded_sequence(embedding, seq_lengths.cpu())

        output, hidden = self.gru(gru_input, hidden)
        if self.n_directions == 2:
            hidden_cat = torch.cat([hidden[-1], hidden[-2]], dim=1)
        else:
            hidden_cat = hidden[-1]

        fc_output = self.fc(hidden_cat)
        return fc_output
def create_tensor(tensor):
    if USE_GPU:
        device = torch.device('cuda:0')
        tensor = tensor.to(device)
    return tensor

## 名字转换成tensor
def make_tensors(names, countries):
    sequences_and_lengths = [name2list(name) for name in names]
    name_sequences = [s1[0] for s1 in sequences_and_lengths]
    seq_lengths = torch.LongTensor([s1[1] for s1 in sequences_and_lengths])
    countries = countries.long()

    # make tensor of name, BatchSize x SeqLen
    seq_tensor = torch.zeros(len(name_sequences), seq_lengths.max()).long()
    for idx, (seq, seq_len) in enumerate(zip(name_sequences, seq_lengths), 0):
        seq_tensor[idx, :seq_len] = torch.LongTensor(seq)

    # sort by length to use pack_padded_sequence
    seq_lengths, perm_idx = seq_lengths.sort(dim=0, descending=True)
    seq_tensor = seq_tensor[perm_idx]
    countries = countries[perm_idx]

    return create_tensor(seq_tensor), create_tensor(seq_lengths), create_tensor(countries)

def name2list(name):
    arr = [ord(c) for c in name]
    return arr, len(arr)

5、训练和测试函数

# 训练和测试
def trainModel():
    total_loss = 0.0
    for i, (names, countries) in enumerate(trainloader, 1):
        inputs, seq_lengths, target = make_tensors(names, countries)
        if USE_GPU:
            inputs, seq_lengths, target = inputs.to(device), seq_lengths.to(device), target.to(device)
        output = classifier(inputs, seq_lengths)
        loss = criterion(output, target)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        total_loss += loss.item()
        # print(total_loss)
        if i % 10 == 0:
            print(f'[{time_since(start)}] Epoch {epoch} ', end='')
            print(f'[{i * len(inputs)}/{len(trainset)}] ', end='')
            print(f'loss = {total_loss / (i * len(inputs))}')
    return total_loss

def testModel():
    correct = 0
    total = len(testset)
    with torch.no_grad():
        for i, (names, countries) in enumerate(testloader, 1):
            inputs, seq_lengths, target = make_tensors(names, countries)
            if USE_GPU:
                inputs, seq_lengths, target = inputs.to(device), seq_lengths.to(device), target.to(device)
            output = classifier(inputs, seq_lengths)
            pred = output.max(dim=1, keepdim=True)[1]
            correct += pred.eq(target.view_as(pred)).sum().item()

        percent = '%.2f' % (100 * correct / total)
        print(f'Test set: Accuracy {correct}/{total} {percent}')
    return correct / total
    
# 计算所需的时间
def time_since(since):
    s = time.time()-since
    m = math.floor(s / 60)
    s -= m * 60
    return '%dm %ds' % (m,s)

6、主函数

if __name__ == '__main__':
    classifier = RNNClassifier(N_CHARS, HIDDEN_SIZE, N_COUNTRY, N_LAYER)
    if USE_GPU:
        device = torch.device('cuda:0')
        classifier.to(device)

    ## 构造损失函数和优化器
    criterion = torch.nn.CrossEntropyLoss()
    optimizer = torch.optim.Adam(classifier.parameters(), lr=0.001)

    start = time.time()
    print("Training for %d epochs..." % N_EPOCHS)
    acc_list = []
    epoch_list = []
    for epoch in range(1,N_EPOCHS+1):
        # 训练过程
        trainModel()
        acc = testModel()
        acc_list.append(acc)
        epoch_list.append(epoch)
    ## 绘图
    plt.plot(epoch_list,acc_list,'b')
    plt.xlabel('Epoch')
    plt.ylabel('Accuracy')
    plt.grid()
    plt.show()

运行结果是:

Training for 100 epochs...
[0m 6s] Epoch 1 [2560/13374] loss = 0.00860695862211287
[0m 6s] Epoch 1 [5120/13374] loss = 0.007365823211148381
[0m 7s] Epoch 1 [7680/13374] loss = 0.006717776755491892
[0m 7s] Epoch 1 [10240/13374] loss = 0.006315738102421165
[0m 7s] Epoch 1 [12800/13374] loss = 0.005965797081589699
Test set: Accuracy 4499/6700 67.15
[0m 8s] Epoch 2 [2560/13374] loss = 0.0041730334283784035
[0m 8s] Epoch 2 [5120/13374] loss = 0.004105975711718201
[0m 8s] Epoch 2 [7680/13374] loss = 0.003980198339559138
[0m 8s] Epoch 2 [10240/13374] loss = 0.0038649425492621957
[0m 8s] Epoch 2 [12800/13374] loss = 0.003780936123803258
Test set: Accuracy 4993/6700 74.52
[0m 9s] Epoch 3 [2560/13374] loss = 0.003294448438100517
[0m 9s] Epoch 3 [5120/13374] loss = 0.0031936198007315396
[0m 9s] Epoch 3 [7680/13374] loss = 0.0031056055799126626
[0m 9s] Epoch 3 [10240/13374] loss = 0.0030843942251522092
[0m 10s] Epoch 3 [12800/13374] loss = 0.0029954449413344265
Test set: Accuracy 5197/6700 77.57
[0m 10s] Epoch 4 [2560/13374] loss = 0.002713542361743748
[0m 10s] Epoch 4 [5120/13374] loss = 0.0026255582575686275
[0m 11s] Epoch 4 [7680/13374] loss = 0.002615426271222532
[0m 11s] Epoch 4 [10240/13374] loss = 0.0025598670938052235
[0m 11s] Epoch 4 [12800/13374] loss = 0.002556177512742579
Test set: Accuracy 5379/6700 80.28
[0m 12s] Epoch 5 [2560/13374] loss = 0.0022082048119045792
[0m 12s] Epoch 5 [5120/13374] loss = 0.0022667710843961688
[0m 12s] Epoch 5 [7680/13374] loss = 0.002254927072984477
[0m 12s] Epoch 5 [10240/13374] loss = 0.0022329111990984528
[0m 12s] Epoch 5 [12800/13374] loss = 0.0022279868158511817
Test set: Accuracy 5442/6700 81.22
[0m 13s] Epoch 6 [2560/13374] loss = 0.0020622997079044582
[0m 13s] Epoch 6 [5120/13374] loss = 0.0020339443057309837
[0m 13s] Epoch 6 [7680/13374] loss = 0.0020600902188258868
[0m 13s] Epoch 6 [10240/13374] loss = 0.0020145778427831827
[0m 14s] Epoch 6 [12800/13374] loss = 0.0019977117935195566
Test set: Accuracy 5513/6700 82.28
[0m 14s] Epoch 7 [2560/13374] loss = 0.0018184445099905134
[0m 14s] Epoch 7 [5120/13374] loss = 0.0018124311754945666
[0m 15s] Epoch 7 [7680/13374] loss = 0.001832863079228749
[0m 15s] Epoch 7 [10240/13374] loss = 0.001820776500971988
[0m 15s] Epoch 7 [12800/13374] loss = 0.00182513820938766
Test set: Accuracy 5548/6700 82.81
[0m 16s] Epoch 8 [2560/13374] loss = 0.00169118270277977
[0m 16s] Epoch 8 [5120/13374] loss = 0.001703426637686789
[0m 16s] Epoch 8 [7680/13374] loss = 0.0016549813095480203
[0m 16s] Epoch 8 [10240/13374] loss = 0.0016203125531319528
[0m 16s] Epoch 8 [12800/13374] loss = 0.0016288075130432844
Test set: Accuracy 5541/6700 82.70
[0m 17s] Epoch 9 [2560/13374] loss = 0.0015783310518600047
[0m 17s] Epoch 9 [5120/13374] loss = 0.0015269039780832828
[0m 17s] Epoch 9 [7680/13374] loss = 0.001517973824714621
[0m 18s] Epoch 9 [10240/13374] loss = 0.0015007524489192292
[0m 18s] Epoch 9 [12800/13374] loss = 0.001508712617214769
Test set: Accuracy 5608/6700 83.70
[0m 18s] Epoch 10 [2560/13374] loss = 0.0013997350237332285
[0m 18s] Epoch 10 [5120/13374] loss = 0.0013986555626615883
[0m 19s] Epoch 10 [7680/13374] loss = 0.0013807148905470967
[0m 19s] Epoch 10 [10240/13374] loss = 0.0013709649356314912
[0m 19s] Epoch 10 [12800/13374] loss = 0.001356036844663322
Test set: Accuracy 5620/6700 83.88
[0m 20s] Epoch 11 [2560/13374] loss = 0.0011692119645886124
[0m 20s] Epoch 11 [5120/13374] loss = 0.0011768766969908028
[0m 20s] Epoch 11 [7680/13374] loss = 0.0012252086346658567
[0m 20s] Epoch 11 [10240/13374] loss = 0.0012302009941777214
[0m 20s] Epoch 11 [12800/13374] loss = 0.0012286740855779498
Test set: Accuracy 5668/6700 84.60
[0m 21s] Epoch 12 [2560/13374] loss = 0.001128750276984647
[0m 21s] Epoch 12 [5120/13374] loss = 0.001057294334168546
[0m 21s] Epoch 12 [7680/13374] loss = 0.0010798656129433462
[0m 22s] Epoch 12 [10240/13374] loss = 0.0010936439779470676
[0m 22s] Epoch 12 [12800/13374] loss = 0.0010908397531602533
Test set: Accuracy 5636/6700 84.12
[0m 22s] Epoch 13 [2560/13374] loss = 0.0009196669270750135
[0m 23s] Epoch 13 [5120/13374] loss = 0.0009422776551218703
[0m 23s] Epoch 13 [7680/13374] loss = 0.0009659806150011718
[0m 23s] Epoch 13 [10240/13374] loss = 0.0009738620181451551
[0m 23s] Epoch 13 [12800/13374] loss = 0.00098282927647233
Test set: Accuracy 5662/6700 84.51
[0m 24s] Epoch 14 [2560/13374] loss = 0.0009010046429466456
[0m 24s] Epoch 14 [5120/13374] loss = 0.0008859473920892925
[0m 24s] Epoch 14 [7680/13374] loss = 0.0008671158439634989
[0m 24s] Epoch 14 [10240/13374] loss = 0.0008719758989172988
[0m 24s] Epoch 14 [12800/13374] loss = 0.0008914104523137212
Test set: Accuracy 5671/6700 84.64
[0m 25s] Epoch 15 [2560/13374] loss = 0.0007911019900348037
[0m 25s] Epoch 15 [5120/13374] loss = 0.0008007242024177686
[0m 25s] Epoch 15 [7680/13374] loss = 0.0007953962466369073
[0m 26s] Epoch 15 [10240/13374] loss = 0.0007765829446725548
[0m 26s] Epoch 15 [12800/13374] loss = 0.0007804746192414313
Test set: Accuracy 5639/6700 84.16
[0m 26s] Epoch 16 [2560/13374] loss = 0.0007351462380029261
[0m 26s] Epoch 16 [5120/13374] loss = 0.0006620583255426027
[0m 27s] Epoch 16 [7680/13374] loss = 0.0006697228566432992
[0m 27s] Epoch 16 [10240/13374] loss = 0.0006789766004658305
[0m 27s] Epoch 16 [12800/13374] loss = 0.0006943178572691978
Test set: Accuracy 5669/6700 84.61
[0m 28s] Epoch 17 [2560/13374] loss = 0.0005335915077012033
[0m 28s] Epoch 17 [5120/13374] loss = 0.0005496438359841704
[0m 28s] Epoch 17 [7680/13374] loss = 0.0005885301992141952
[0m 28s] Epoch 17 [10240/13374] loss = 0.000597383445710875
[0m 28s] Epoch 17 [12800/13374] loss = 0.0006246048223692924
Test set: Accuracy 5647/6700 84.28
[0m 29s] Epoch 18 [2560/13374] loss = 0.000499280504300259
[0m 29s] Epoch 18 [5120/13374] loss = 0.0005305205791955814
[0m 29s] Epoch 18 [7680/13374] loss = 0.0005218163452809677
[0m 30s] Epoch 18 [10240/13374] loss = 0.0005412587714090477
[0m 30s] Epoch 18 [12800/13374] loss = 0.0005443842167733238
Test set: Accuracy 5664/6700 84.54
[0m 30s] Epoch 19 [2560/13374] loss = 0.00045067712489981203
[0m 31s] Epoch 19 [5120/13374] loss = 0.0004623372238711454
[0m 31s] Epoch 19 [7680/13374] loss = 0.00048325015231966975
[0m 31s] Epoch 19 [10240/13374] loss = 0.0004777449241373688
[0m 31s] Epoch 19 [12800/13374] loss = 0.00048354142694734037
Test set: Accuracy 5676/6700 84.72
[0m 32s] Epoch 20 [2560/13374] loss = 0.0003925201133824885
[0m 32s] Epoch 20 [5120/13374] loss = 0.00040965494263218717
[0m 32s] Epoch 20 [7680/13374] loss = 0.00042179803810237594
[0m 32s] Epoch 20 [10240/13374] loss = 0.00043072550251963546
[0m 33s] Epoch 20 [12800/13374] loss = 0.0004402759316144511
Test set: Accuracy 5644/6700 84.24
[0m 33s] Epoch 21 [2560/13374] loss = 0.00035498328506946566
[0m 33s] Epoch 21 [5120/13374] loss = 0.0003663867595605552
[0m 33s] Epoch 21 [7680/13374] loss = 0.0003743466290567691
[0m 34s] Epoch 21 [10240/13374] loss = 0.00038886873589945027
[0m 34s] Epoch 21 [12800/13374] loss = 0.0003955728083383292
Test set: Accuracy 5624/6700 83.94
[0m 34s] Epoch 22 [2560/13374] loss = 0.00039733375888317823
[0m 35s] Epoch 22 [5120/13374] loss = 0.0003822706959908828
[0m 35s] Epoch 22 [7680/13374] loss = 0.00038881703512743114
[0m 35s] Epoch 22 [10240/13374] loss = 0.0003891231397574302
[0m 35s] Epoch 22 [12800/13374] loss = 0.00039844352402724326
Test set: Accuracy 5632/6700 84.06
[0m 36s] Epoch 23 [2560/13374] loss = 0.00031715883378637957
[0m 36s] Epoch 23 [5120/13374] loss = 0.0003363398049259558
[0m 36s] Epoch 23 [7680/13374] loss = 0.00033881019335240125
[0m 36s] Epoch 23 [10240/13374] loss = 0.0003381936596269952
[0m 37s] Epoch 23 [12800/13374] loss = 0.0003487202411633916
Test set: Accuracy 5649/6700 84.31
[0m 37s] Epoch 24 [2560/13374] loss = 0.0002756304980721325
[0m 37s] Epoch 24 [5120/13374] loss = 0.0002758071932476014
[0m 38s] Epoch 24 [7680/13374] loss = 0.000293470600930353
[0m 38s] Epoch 24 [10240/13374] loss = 0.00031093318648345303
[0m 38s] Epoch 24 [12800/13374] loss = 0.00031546427082503216
Test set: Accuracy 5632/6700 84.06
[0m 38s] Epoch 25 [2560/13374] loss = 0.0002710334025323391
[0m 39s] Epoch 25 [5120/13374] loss = 0.00027531352679943666
[0m 39s] Epoch 25 [7680/13374] loss = 0.00029858458728995176
[0m 39s] Epoch 25 [10240/13374] loss = 0.0003020073418156244
[0m 39s] Epoch 25 [12800/13374] loss = 0.0003208827000344172
Test set: Accuracy 5630/6700 84.03
[0m 40s] Epoch 26 [2560/13374] loss = 0.00026687815407058226
[0m 40s] Epoch 26 [5120/13374] loss = 0.00027793696863227525
[0m 40s] Epoch 26 [7680/13374] loss = 0.0002833966568384009
[0m 40s] Epoch 26 [10240/13374] loss = 0.000275367657377501
[0m 41s] Epoch 26 [12800/13374] loss = 0.00028275975491851566
Test set: Accuracy 5646/6700 84.27
[0m 41s] Epoch 27 [2560/13374] loss = 0.00024254648451460525
[0m 41s] Epoch 27 [5120/13374] loss = 0.00025978743506129833
[0m 41s] Epoch 27 [7680/13374] loss = 0.00027511320125389225
[0m 42s] Epoch 27 [10240/13374] loss = 0.00027546809978957755
[0m 42s] Epoch 27 [12800/13374] loss = 0.00027898640371859073
Test set: Accuracy 5637/6700 84.13
[0m 42s] Epoch 28 [2560/13374] loss = 0.00022069217375246807
[0m 43s] Epoch 28 [5120/13374] loss = 0.00023977867167559452
[0m 43s] Epoch 28 [7680/13374] loss = 0.00024175724344483268
[0m 43s] Epoch 28 [10240/13374] loss = 0.00024355535497306847
[0m 43s] Epoch 28 [12800/13374] loss = 0.0002604506106581539
Test set: Accuracy 5630/6700 84.03
[0m 44s] Epoch 29 [2560/13374] loss = 0.00022932333667995407
[0m 44s] Epoch 29 [5120/13374] loss = 0.0002494631597073749
[0m 44s] Epoch 29 [7680/13374] loss = 0.0002605740626070959
[0m 44s] Epoch 29 [10240/13374] loss = 0.0002684800903807627
[0m 45s] Epoch 29 [12800/13374] loss = 0.0002697185322176665
Test set: Accuracy 5631/6700 84.04
[0m 45s] Epoch 30 [2560/13374] loss = 0.00019579790241550655
[0m 45s] Epoch 30 [5120/13374] loss = 0.0002301252228789963
[0m 46s] Epoch 30 [7680/13374] loss = 0.0002404641330940649
[0m 46s] Epoch 30 [10240/13374] loss = 0.00024274504685308784
[0m 46s] Epoch 30 [12800/13374] loss = 0.0002482960623456165
Test set: Accuracy 5631/6700 84.04
[0m 46s] Epoch 31 [2560/13374] loss = 0.0001885155594209209
[0m 47s] Epoch 31 [5120/13374] loss = 0.0002133855341526214
[0m 47s] Epoch 31 [7680/13374] loss = 0.00021207518827092524
[0m 47s] Epoch 31 [10240/13374] loss = 0.00023260109119291884
[0m 47s] Epoch 31 [12800/13374] loss = 0.00024286744301207363
Test set: Accuracy 5659/6700 84.46
[0m 48s] Epoch 32 [2560/13374] loss = 0.0001736787031404674
[0m 48s] Epoch 32 [5120/13374] loss = 0.0002004346522880951
[0m 48s] Epoch 32 [7680/13374] loss = 0.00020988481992390007
[0m 48s] Epoch 32 [10240/13374] loss = 0.00021772967193101067
[0m 49s] Epoch 32 [12800/13374] loss = 0.0002271339253638871
Test set: Accuracy 5638/6700 84.15
[0m 49s] Epoch 33 [2560/13374] loss = 0.00016626105571049266
[0m 49s] Epoch 33 [5120/13374] loss = 0.00018629685837368015
[0m 50s] Epoch 33 [7680/13374] loss = 0.00019076809112448246
[0m 50s] Epoch 33 [10240/13374] loss = 0.00020280930675653508
[0m 50s] Epoch 33 [12800/13374] loss = 0.00021941546423477122
Test set: Accuracy 5629/6700 84.01
[0m 51s] Epoch 34 [2560/13374] loss = 0.00020360739436000585
[0m 51s] Epoch 34 [5120/13374] loss = 0.00024405741205555387
[0m 51s] Epoch 34 [7680/13374] loss = 0.00023072288507440438
[0m 51s] Epoch 34 [10240/13374] loss = 0.0002300768388522556
[0m 51s] Epoch 34 [12800/13374] loss = 0.00022989605204202235
Test set: Accuracy 5650/6700 84.33
[0m 52s] Epoch 35 [2560/13374] loss = 0.00021689072018489243
[0m 52s] Epoch 35 [5120/13374] loss = 0.00020165834903309587
[0m 52s] Epoch 35 [7680/13374] loss = 0.00020995634719535398
[0m 52s] Epoch 35 [10240/13374] loss = 0.00021053457367088414
[0m 53s] Epoch 35 [12800/13374] loss = 0.00022676204433082602
Test set: Accuracy 5623/6700 83.93
[0m 53s] Epoch 36 [2560/13374] loss = 0.0001891853789857123
[0m 53s] Epoch 36 [5120/13374] loss = 0.00019154386172886005
[0m 54s] Epoch 36 [7680/13374] loss = 0.00019909417169401423
[0m 54s] Epoch 36 [10240/13374] loss = 0.0002033269716775976
[0m 54s] Epoch 36 [12800/13374] loss = 0.00021240836504148318
Test set: Accuracy 5639/6700 84.16
[0m 54s] Epoch 37 [2560/13374] loss = 0.0001796342301531695
[0m 55s] Epoch 37 [5120/13374] loss = 0.00018612920030136593
[0m 55s] Epoch 37 [7680/13374] loss = 0.00019152020249748602
[0m 55s] Epoch 37 [10240/13374] loss = 0.000203208972561697
[0m 55s] Epoch 37 [12800/13374] loss = 0.0002075669124315027
Test set: Accuracy 5642/6700 84.21
[0m 56s] Epoch 38 [2560/13374] loss = 0.00018619946931721642
[0m 56s] Epoch 38 [5120/13374] loss = 0.00018290773441549392
[0m 56s] Epoch 38 [7680/13374] loss = 0.0001942833696375601
[0m 56s] Epoch 38 [10240/13374] loss = 0.00020924856726196596
[0m 57s] Epoch 38 [12800/13374] loss = 0.0002110765833640471
Test set: Accuracy 5642/6700 84.21
[0m 57s] Epoch 39 [2560/13374] loss = 0.0001598451206518803
[0m 57s] Epoch 39 [5120/13374] loss = 0.00016540063043066767
[0m 58s] Epoch 39 [7680/13374] loss = 0.00017140106380490275
[0m 58s] Epoch 39 [10240/13374] loss = 0.00018523540766182122
[0m 58s] Epoch 39 [12800/13374] loss = 0.00020162898450507783
Test set: Accuracy 5635/6700 84.10
[0m 59s] Epoch 40 [2560/13374] loss = 0.00017074672869057394
[0m 59s] Epoch 40 [5120/13374] loss = 0.00018085771807818674
[0m 59s] Epoch 40 [7680/13374] loss = 0.0001809817440516781
[0m 59s] Epoch 40 [10240/13374] loss = 0.00019309071049065097
[0m 59s] Epoch 40 [12800/13374] loss = 0.0001993068312003743
Test set: Accuracy 5648/6700 84.30
[1m 0s] Epoch 41 [2560/13374] loss = 0.00016612220206297935
[1m 0s] Epoch 41 [5120/13374] loss = 0.0001706099443254061
[1m 0s] Epoch 41 [7680/13374] loss = 0.0001854281814303249
[1m 1s] Epoch 41 [10240/13374] loss = 0.0001975419800146483
[1m 1s] Epoch 41 [12800/13374] loss = 0.00020076799613889308
Test set: Accuracy 5641/6700 84.19
[1m 1s] Epoch 42 [2560/13374] loss = 0.00016448667083750478
[1m 1s] Epoch 42 [5120/13374] loss = 0.0001686435178271495
[1m 2s] Epoch 42 [7680/13374] loss = 0.00017780081082795126
[1m 2s] Epoch 42 [10240/13374] loss = 0.0001816715152017423
[1m 2s] Epoch 42 [12800/13374] loss = 0.00019347392997588032
Test set: Accuracy 5658/6700 84.45
[1m 3s] Epoch 43 [2560/13374] loss = 0.00015226866817101835
[1m 3s] Epoch 43 [5120/13374] loss = 0.00015683605561207515
[1m 3s] Epoch 43 [7680/13374] loss = 0.00017101086632465012
[1m 3s] Epoch 43 [10240/13374] loss = 0.00017516501939098816
[1m 3s] Epoch 43 [12800/13374] loss = 0.0001911126816412434
Test set: Accuracy 5653/6700 84.37
[1m 4s] Epoch 44 [2560/13374] loss = 0.00016253654612228275
[1m 4s] Epoch 44 [5120/13374] loss = 0.00017415808724763338
[1m 4s] Epoch 44 [7680/13374] loss = 0.00018138783998438156
[1m 5s] Epoch 44 [10240/13374] loss = 0.0001889306457087514
[1m 5s] Epoch 44 [12800/13374] loss = 0.00019228458186262287
Test set: Accuracy 5632/6700 84.06
[1m 5s] Epoch 45 [2560/13374] loss = 0.0001549996653920971
[1m 5s] Epoch 45 [5120/13374] loss = 0.00015585669971187598
[1m 6s] Epoch 45 [7680/13374] loss = 0.0001677449591322026
[1m 6s] Epoch 45 [10240/13374] loss = 0.000179347663106455
[1m 6s] Epoch 45 [12800/13374] loss = 0.00018908634767285547
Test set: Accuracy 5655/6700 84.40
[1m 7s] Epoch 46 [2560/13374] loss = 0.00016199276069528423
[1m 7s] Epoch 46 [5120/13374] loss = 0.00017043181469489355
[1m 7s] Epoch 46 [7680/13374] loss = 0.00018517483355632672
[1m 7s] Epoch 46 [10240/13374] loss = 0.00018858630319300572
[1m 7s] Epoch 46 [12800/13374] loss = 0.00019535257495590486
Test set: Accuracy 5642/6700 84.21
[1m 8s] Epoch 47 [2560/13374] loss = 0.00015097135983523912
[1m 8s] Epoch 47 [5120/13374] loss = 0.00016528281703358515
[1m 8s] Epoch 47 [7680/13374] loss = 0.00016513479204149917
[1m 8s] Epoch 47 [10240/13374] loss = 0.0001777675863195327
[1m 9s] Epoch 47 [12800/13374] loss = 0.00018821106365066954
Test set: Accuracy 5636/6700 84.12
[1m 9s] Epoch 48 [2560/13374] loss = 0.00017054921700037083
[1m 9s] Epoch 48 [5120/13374] loss = 0.0001662530550675001
[1m 10s] Epoch 48 [7680/13374] loss = 0.0001700379335185668
[1m 10s] Epoch 48 [10240/13374] loss = 0.0001722083694403409
[1m 10s] Epoch 48 [12800/13374] loss = 0.0001863659342052415
Test set: Accuracy 5652/6700 84.36
[1m 11s] Epoch 49 [2560/13374] loss = 0.0001351829636405455
[1m 11s] Epoch 49 [5120/13374] loss = 0.00015850452291488182
[1m 11s] Epoch 49 [7680/13374] loss = 0.00016441492067921596
[1m 11s] Epoch 49 [10240/13374] loss = 0.00017152577383967583
[1m 11s] Epoch 49 [12800/13374] loss = 0.00017557970975758507
Test set: Accuracy 5632/6700 84.06
[1m 12s] Epoch 50 [2560/13374] loss = 0.00013160413145669737
[1m 12s] Epoch 50 [5120/13374] loss = 0.00015507042735407595
[1m 12s] Epoch 50 [7680/13374] loss = 0.0001591459016102211
[1m 13s] Epoch 50 [10240/13374] loss = 0.0001727418546579429
[1m 13s] Epoch 50 [12800/13374] loss = 0.00018523727558203973
Test set: Accuracy 5652/6700 84.36
[1m 13s] Epoch 51 [2560/13374] loss = 0.0001452773060009349
[1m 14s] Epoch 51 [5120/13374] loss = 0.00015953768270264844
[1m 14s] Epoch 51 [7680/13374] loss = 0.00017269859357232537
[1m 14s] Epoch 51 [10240/13374] loss = 0.0001801391224944382
[1m 14s] Epoch 51 [12800/13374] loss = 0.00018668249613256193
Test set: Accuracy 5647/6700 84.28
[1m 15s] Epoch 52 [2560/13374] loss = 0.00016670606273692102
[1m 15s] Epoch 52 [5120/13374] loss = 0.0001684933671640465
[1m 15s] Epoch 52 [7680/13374] loss = 0.00017059538707447547
[1m 15s] Epoch 52 [10240/13374] loss = 0.00017298366819886723
[1m 15s] Epoch 52 [12800/13374] loss = 0.00017800146670197137
Test set: Accuracy 5634/6700 84.09
[1m 16s] Epoch 53 [2560/13374] loss = 0.00014898808221914807
[1m 16s] Epoch 53 [5120/13374] loss = 0.00016406535069108942
[1m 16s] Epoch 53 [7680/13374] loss = 0.00016481069518097986
[1m 17s] Epoch 53 [10240/13374] loss = 0.00017314824835921173
[1m 17s] Epoch 53 [12800/13374] loss = 0.0001818900321086403
Test set: Accuracy 5641/6700 84.19
[1m 17s] Epoch 54 [2560/13374] loss = 0.000135995821619872
[1m 18s] Epoch 54 [5120/13374] loss = 0.00014039595444046427
[1m 18s] Epoch 54 [7680/13374] loss = 0.00015699691114908396
[1m 18s] Epoch 54 [10240/13374] loss = 0.0001637875628148322
[1m 18s] Epoch 54 [12800/13374] loss = 0.00017385609637130984
Test set: Accuracy 5647/6700 84.28
[1m 19s] Epoch 55 [2560/13374] loss = 0.00013998992289998569
[1m 19s] Epoch 55 [5120/13374] loss = 0.00016119746396725532
[1m 19s] Epoch 55 [7680/13374] loss = 0.00015871881720765183
[1m 19s] Epoch 55 [10240/13374] loss = 0.00016557223389099818
[1m 19s] Epoch 55 [12800/13374] loss = 0.00017750509141478688
Test set: Accuracy 5650/6700 84.33
[1m 20s] Epoch 56 [2560/13374] loss = 0.0001476054145314265
[1m 20s] Epoch 56 [5120/13374] loss = 0.00015266236187017057
[1m 20s] Epoch 56 [7680/13374] loss = 0.0001542155760641132
[1m 21s] Epoch 56 [10240/13374] loss = 0.00017242764379261645
[1m 21s] Epoch 56 [12800/13374] loss = 0.00017623727129830512
Test set: Accuracy 5654/6700 84.39
[1m 21s] Epoch 57 [2560/13374] loss = 0.00012241995573276655
[1m 22s] Epoch 57 [5120/13374] loss = 0.000143464214852429
[1m 22s] Epoch 57 [7680/13374] loss = 0.0001522479251434561
[1m 22s] Epoch 57 [10240/13374] loss = 0.00016436444839200702
[1m 22s] Epoch 57 [12800/13374] loss = 0.00017336534408968874
Test set: Accuracy 5638/6700 84.15
[1m 23s] Epoch 58 [2560/13374] loss = 0.0001567185237945523
[1m 23s] Epoch 58 [5120/13374] loss = 0.0001521907830465352
[1m 23s] Epoch 58 [7680/13374] loss = 0.00015199434492387808
[1m 23s] Epoch 58 [10240/13374] loss = 0.00016033863412303617
[1m 23s] Epoch 58 [12800/13374] loss = 0.00016663918664562517
Test set: Accuracy 5659/6700 84.46
[1m 24s] Epoch 59 [2560/13374] loss = 0.00014421282467083074
[1m 24s] Epoch 59 [5120/13374] loss = 0.00015611507114954293
[1m 24s] Epoch 59 [7680/13374] loss = 0.00015937611096887848
[1m 25s] Epoch 59 [10240/13374] loss = 0.00016744226686569164
[1m 25s] Epoch 59 [12800/13374] loss = 0.0001715176993457135
Test set: Accuracy 5637/6700 84.13
[1m 25s] Epoch 60 [2560/13374] loss = 0.00013119589784764684
[1m 26s] Epoch 60 [5120/13374] loss = 0.00014380973480001557
[1m 26s] Epoch 60 [7680/13374] loss = 0.0001584008115363152
[1m 26s] Epoch 60 [10240/13374] loss = 0.00016373137004848103
[1m 26s] Epoch 60 [12800/13374] loss = 0.00017026308545609937
Test set: Accuracy 5637/6700 84.13
[1m 27s] Epoch 61 [2560/13374] loss = 0.00014749844413017855
[1m 27s] Epoch 61 [5120/13374] loss = 0.00014197853597579523
[1m 27s] Epoch 61 [7680/13374] loss = 0.0001613169959455263
[1m 27s] Epoch 61 [10240/13374] loss = 0.0001756960848069866
[1m 28s] Epoch 61 [12800/13374] loss = 0.00017193650404806249
Test set: Accuracy 5641/6700 84.19
[1m 28s] Epoch 62 [2560/13374] loss = 0.00015327841392718256
[1m 28s] Epoch 62 [5120/13374] loss = 0.00015181392554950435
[1m 29s] Epoch 62 [7680/13374] loss = 0.00016074852343687476
[1m 29s] Epoch 62 [10240/13374] loss = 0.00016436823752883357
[1m 29s] Epoch 62 [12800/13374] loss = 0.00017171619896544143
Test set: Accuracy 5652/6700 84.36
[1m 30s] Epoch 63 [2560/13374] loss = 0.00012616697458724956
[1m 30s] Epoch 63 [5120/13374] loss = 0.0001401373641783721
[1m 30s] Epoch 63 [7680/13374] loss = 0.00014184863769817942
[1m 30s] Epoch 63 [10240/13374] loss = 0.00016650523784846882
[1m 30s] Epoch 63 [12800/13374] loss = 0.00016589865197602193
Test set: Accuracy 5649/6700 84.31
[1m 31s] Epoch 64 [2560/13374] loss = 0.00013943146914243698
[1m 31s] Epoch 64 [5120/13374] loss = 0.00012798870266124142
[1m 31s] Epoch 64 [7680/13374] loss = 0.00015261397711583414
[1m 32s] Epoch 64 [10240/13374] loss = 0.0001606873240234563
[1m 32s] Epoch 64 [12800/13374] loss = 0.00016732741496525705
Test set: Accuracy 5647/6700 84.28
[1m 32s] Epoch 65 [2560/13374] loss = 0.00015015850003692323
[1m 33s] Epoch 65 [5120/13374] loss = 0.00014667164687125477
[1m 33s] Epoch 65 [7680/13374] loss = 0.0001486106699303491
[1m 33s] Epoch 65 [10240/13374] loss = 0.00016536903049200192
[1m 33s] Epoch 65 [12800/13374] loss = 0.00016447019959741737
Test set: Accuracy 5654/6700 84.39
[1m 34s] Epoch 66 [2560/13374] loss = 0.00011635328410193324
[1m 34s] Epoch 66 [5120/13374] loss = 0.00013808329676976428
[1m 34s] Epoch 66 [7680/13374] loss = 0.0001477059551689308
[1m 34s] Epoch 66 [10240/13374] loss = 0.00015145268098422094
[1m 34s] Epoch 66 [12800/13374] loss = 0.00016544869125937112
Test set: Accuracy 5640/6700 84.18
[1m 35s] Epoch 67 [2560/13374] loss = 0.00012139531099819578
[1m 35s] Epoch 67 [5120/13374] loss = 0.00013452013445203193
[1m 35s] Epoch 67 [7680/13374] loss = 0.00014736012187010298
[1m 36s] Epoch 67 [10240/13374] loss = 0.00014819719071965665
[1m 36s] Epoch 67 [12800/13374] loss = 0.00015849493531277403
Test set: Accuracy 5639/6700 84.16
[1m 36s] Epoch 68 [2560/13374] loss = 0.00015372007983387447
[1m 36s] Epoch 68 [5120/13374] loss = 0.00015057896489452106
[1m 37s] Epoch 68 [7680/13374] loss = 0.00016113407133768002
[1m 37s] Epoch 68 [10240/13374] loss = 0.00016787565473350697
[1m 37s] Epoch 68 [12800/13374] loss = 0.00017226778814801946
Test set: Accuracy 5642/6700 84.21
[1m 38s] Epoch 69 [2560/13374] loss = 0.00013389610867307056
[1m 38s] Epoch 69 [5120/13374] loss = 0.00013965699235995999
[1m 38s] Epoch 69 [7680/13374] loss = 0.00014701973547441108
[1m 38s] Epoch 69 [10240/13374] loss = 0.00016147920969160622
[1m 38s] Epoch 69 [12800/13374] loss = 0.00016546739054319913
Test set: Accuracy 5635/6700 84.10
[1m 39s] Epoch 70 [2560/13374] loss = 0.00012832723223255016
[1m 39s] Epoch 70 [5120/13374] loss = 0.00012523621026048204
[1m 39s] Epoch 70 [7680/13374] loss = 0.0001426634125285394
[1m 40s] Epoch 70 [10240/13374] loss = 0.000148418341177603
[1m 40s] Epoch 70 [12800/13374] loss = 0.00015978392541001084
Test set: Accuracy 5656/6700 84.42
[1m 40s] Epoch 71 [2560/13374] loss = 0.00013789818403893151
[1m 41s] Epoch 71 [5120/13374] loss = 0.00014416994563362095
[1m 41s] Epoch 71 [7680/13374] loss = 0.0001557490630754425
[1m 41s] Epoch 71 [10240/13374] loss = 0.00015658099109714386
[1m 41s] Epoch 71 [12800/13374] loss = 0.000165932672098279
Test set: Accuracy 5646/6700 84.27
[1m 42s] Epoch 72 [2560/13374] loss = 0.0001298020353715401
[1m 42s] Epoch 72 [5120/13374] loss = 0.0001390614099364029
[1m 42s] Epoch 72 [7680/13374] loss = 0.00014694227672104414
[1m 42s] Epoch 72 [10240/13374] loss = 0.00015568501148663927
[1m 43s] Epoch 72 [12800/13374] loss = 0.00015729716993519106
Test set: Accuracy 5653/6700 84.37
[1m 43s] Epoch 73 [2560/13374] loss = 0.00014050786048755982
[1m 43s] Epoch 73 [5120/13374] loss = 0.0001339421003649477
[1m 43s] Epoch 73 [7680/13374] loss = 0.00014316008237074128
[1m 44s] Epoch 73 [10240/13374] loss = 0.00014807144107180646
[1m 44s] Epoch 73 [12800/13374] loss = 0.00015694285262725317
Test set: Accuracy 5659/6700 84.46
[1m 44s] Epoch 74 [2560/13374] loss = 0.0001180999184725806
[1m 45s] Epoch 74 [5120/13374] loss = 0.0001226725638844073
[1m 45s] Epoch 74 [7680/13374] loss = 0.00013836684229318053
[1m 45s] Epoch 74 [10240/13374] loss = 0.00014959168238419806
[1m 45s] Epoch 74 [12800/13374] loss = 0.0001625502666865941
Test set: Accuracy 5643/6700 84.22
[1m 46s] Epoch 75 [2560/13374] loss = 0.00011450508318375797
[1m 46s] Epoch 75 [5120/13374] loss = 0.00011563644802663476
[1m 46s] Epoch 75 [7680/13374] loss = 0.00013718602082614476
[1m 46s] Epoch 75 [10240/13374] loss = 0.0001490532697062008
[1m 47s] Epoch 75 [12800/13374] loss = 0.00016053798419306985
Test set: Accuracy 5633/6700 84.07
[1m 47s] Epoch 76 [2560/13374] loss = 0.00011204790134797805
[1m 47s] Epoch 76 [5120/13374] loss = 0.0001221524038555799
[1m 47s] Epoch 76 [7680/13374] loss = 0.00013792772248658972
[1m 48s] Epoch 76 [10240/13374] loss = 0.00014929428052710137
[1m 48s] Epoch 76 [12800/13374] loss = 0.00015219571243505926
Test set: Accuracy 5651/6700 84.34
[1m 48s] Epoch 77 [2560/13374] loss = 0.00014631456870120018
[1m 49s] Epoch 77 [5120/13374] loss = 0.00015900119142315817
[1m 49s] Epoch 77 [7680/13374] loss = 0.00015857343775375435
[1m 49s] Epoch 77 [10240/13374] loss = 0.00015608551584591623
[1m 49s] Epoch 77 [12800/13374] loss = 0.00016077844818937592
Test set: Accuracy 5645/6700 84.25
[1m 50s] Epoch 78 [2560/13374] loss = 0.00012986250403628218
[1m 50s] Epoch 78 [5120/13374] loss = 0.0001408586249453947
[1m 50s] Epoch 78 [7680/13374] loss = 0.00014726987986553772
[1m 50s] Epoch 78 [10240/13374] loss = 0.00015312826672015946
[1m 51s] Epoch 78 [12800/13374] loss = 0.00015287183690816165
Test set: Accuracy 5632/6700 84.06
[1m 51s] Epoch 79 [2560/13374] loss = 0.00015631420828867703
[1m 51s] Epoch 79 [5120/13374] loss = 0.00015212813050311525
[1m 51s] Epoch 79 [7680/13374] loss = 0.0001518570879852632
[1m 52s] Epoch 79 [10240/13374] loss = 0.00015013442052804748
[1m 52s] Epoch 79 [12800/13374] loss = 0.00015405182108224835
Test set: Accuracy 5648/6700 84.30
[1m 52s] Epoch 80 [2560/13374] loss = 0.00014844939796603284
[1m 53s] Epoch 80 [5120/13374] loss = 0.00014580166134692263
[1m 53s] Epoch 80 [7680/13374] loss = 0.00013516590018601468
[1m 53s] Epoch 80 [10240/13374] loss = 0.00014494207625830312
[1m 53s] Epoch 80 [12800/13374] loss = 0.00015294184151571244
Test set: Accuracy 5651/6700 84.34
[1m 54s] Epoch 81 [2560/13374] loss = 0.00011130250459245872
[1m 54s] Epoch 81 [5120/13374] loss = 0.00011661676599032944
[1m 54s] Epoch 81 [7680/13374] loss = 0.00014718697408776886
[1m 54s] Epoch 81 [10240/13374] loss = 0.00015069807441250304
[1m 55s] Epoch 81 [12800/13374] loss = 0.00015643394021026325
Test set: Accuracy 5644/6700 84.24
[1m 55s] Epoch 82 [2560/13374] loss = 0.00013437336529023013
[1m 55s] Epoch 82 [5120/13374] loss = 0.0001370772828522604
[1m 56s] Epoch 82 [7680/13374] loss = 0.0001451772285993987
[1m 56s] Epoch 82 [10240/13374] loss = 0.00015198582059383625
[1m 56s] Epoch 82 [12800/13374] loss = 0.0001558834800380282
Test set: Accuracy 5631/6700 84.04
[1m 56s] Epoch 83 [2560/13374] loss = 0.00011595464275160339
[1m 57s] Epoch 83 [5120/13374] loss = 0.0001197596795464051
[1m 57s] Epoch 83 [7680/13374] loss = 0.00013702306617536427
[1m 57s] Epoch 83 [10240/13374] loss = 0.00014425992130782107
[1m 57s] Epoch 83 [12800/13374] loss = 0.0001492082192999078
Test set: Accuracy 5640/6700 84.18
[1m 58s] Epoch 84 [2560/13374] loss = 0.00014761782949790359
[1m 58s] Epoch 84 [5120/13374] loss = 0.0001545531558804214
[1m 58s] Epoch 84 [7680/13374] loss = 0.00015097122256217213
[1m 58s] Epoch 84 [10240/13374] loss = 0.00015443215797859012
[1m 59s] Epoch 84 [12800/13374] loss = 0.00016217300420976244
Test set: Accuracy 5664/6700 84.54
[1m 59s] Epoch 85 [2560/13374] loss = 0.00011294389478280208
[1m 59s] Epoch 85 [5120/13374] loss = 0.00012874214808107355
[2m 0s] Epoch 85 [7680/13374] loss = 0.0001459343172124742
[2m 0s] Epoch 85 [10240/13374] loss = 0.00014791608846280723
[2m 0s] Epoch 85 [12800/13374] loss = 0.00015256098842655774
Test set: Accuracy 5660/6700 84.48
[2m 1s] Epoch 86 [2560/13374] loss = 0.00012127336303819902
[2m 1s] Epoch 86 [5120/13374] loss = 0.00013131657833582723
[2m 1s] Epoch 86 [7680/13374] loss = 0.00013919942733385445
[2m 1s] Epoch 86 [10240/13374] loss = 0.0001476321790505608
[2m 1s] Epoch 86 [12800/13374] loss = 0.00015455998065590392
Test set: Accuracy 5653/6700 84.37
[2m 2s] Epoch 87 [2560/13374] loss = 0.00012593039573403076
[2m 2s] Epoch 87 [5120/13374] loss = 0.00013058253734925528
[2m 2s] Epoch 87 [7680/13374] loss = 0.00014188442522330055
[2m 2s] Epoch 87 [10240/13374] loss = 0.00014874232938382191
[2m 3s] Epoch 87 [12800/13374] loss = 0.00015186753786110784
Test set: Accuracy 5662/6700 84.51
[2m 3s] Epoch 88 [2560/13374] loss = 0.0001089600187697215
[2m 3s] Epoch 88 [5120/13374] loss = 0.00011433305298851338
[2m 4s] Epoch 88 [7680/13374] loss = 0.00013114992931756813
[2m 4s] Epoch 88 [10240/13374] loss = 0.00014879195932735457
[2m 4s] Epoch 88 [12800/13374] loss = 0.0001482896050583804
Test set: Accuracy 5651/6700 84.34
[2m 4s] Epoch 89 [2560/13374] loss = 0.0001296891408856027
[2m 5s] Epoch 89 [5120/13374] loss = 0.00013311082147993147
[2m 5s] Epoch 89 [7680/13374] loss = 0.00013177143167316294
[2m 5s] Epoch 89 [10240/13374] loss = 0.00014392365446838084
[2m 5s] Epoch 89 [12800/13374] loss = 0.00015019990139990115
Test set: Accuracy 5630/6700 84.03
[2m 6s] Epoch 90 [2560/13374] loss = 0.00012703867905656808
[2m 6s] Epoch 90 [5120/13374] loss = 0.00013884279687772504
[2m 6s] Epoch 90 [7680/13374] loss = 0.0001498242935970969
[2m 6s] Epoch 90 [10240/13374] loss = 0.00015758140725665725
[2m 7s] Epoch 90 [12800/13374] loss = 0.00015390889486297966
Test set: Accuracy 5659/6700 84.46
[2m 7s] Epoch 91 [2560/13374] loss = 0.0001149479256127961
[2m 7s] Epoch 91 [5120/13374] loss = 0.00013040684607403818
[2m 8s] Epoch 91 [7680/13374] loss = 0.00013131692903698423
[2m 8s] Epoch 91 [10240/13374] loss = 0.0001369929914289969
[2m 8s] Epoch 91 [12800/13374] loss = 0.0001444407005328685
Test set: Accuracy 5641/6700 84.19
[2m 9s] Epoch 92 [2560/13374] loss = 0.00011938077223021537
[2m 9s] Epoch 92 [5120/13374] loss = 0.00013005492583033628
[2m 9s] Epoch 92 [7680/13374] loss = 0.00013454373765853234
[2m 9s] Epoch 92 [10240/13374] loss = 0.00014387782066478395
[2m 9s] Epoch 92 [12800/13374] loss = 0.0001511065853992477
Test set: Accuracy 5664/6700 84.54
[2m 10s] Epoch 93 [2560/13374] loss = 0.00012604729490703904
[2m 10s] Epoch 93 [5120/13374] loss = 0.00012864276686741505
[2m 10s] Epoch 93 [7680/13374] loss = 0.00013494007143890485
[2m 11s] Epoch 93 [10240/13374] loss = 0.00014410500625672285
[2m 11s] Epoch 93 [12800/13374] loss = 0.00014930138262570837
Test set: Accuracy 5646/6700 84.27
[2m 11s] Epoch 94 [2560/13374] loss = 0.00013071976136416196
[2m 11s] Epoch 94 [5120/13374] loss = 0.00012485687402659097
[2m 12s] Epoch 94 [7680/13374] loss = 0.00013254685497183044
[2m 12s] Epoch 94 [10240/13374] loss = 0.00013991985524626217
[2m 12s] Epoch 94 [12800/13374] loss = 0.00014714924720465205
Test set: Accuracy 5643/6700 84.22
[2m 13s] Epoch 95 [2560/13374] loss = 0.00012407253525452687
[2m 13s] Epoch 95 [5120/13374] loss = 0.0001243543303644401
[2m 13s] Epoch 95 [7680/13374] loss = 0.00013752803873406567
[2m 13s] Epoch 95 [10240/13374] loss = 0.00014153832271404098
[2m 13s] Epoch 95 [12800/13374] loss = 0.00014754462317796425
Test set: Accuracy 5640/6700 84.18
[2m 14s] Epoch 96 [2560/13374] loss = 0.00011168718483531848
[2m 14s] Epoch 96 [5120/13374] loss = 0.00011984811244474259
[2m 14s] Epoch 96 [7680/13374] loss = 0.0001262039380283871
[2m 15s] Epoch 96 [10240/13374] loss = 0.00013695735524379415
[2m 15s] Epoch 96 [12800/13374] loss = 0.00015098123185453005
Test set: Accuracy 5642/6700 84.21
[2m 15s] Epoch 97 [2560/13374] loss = 0.00010994029253197368
[2m 15s] Epoch 97 [5120/13374] loss = 0.00011650288888631621
[2m 16s] Epoch 97 [7680/13374] loss = 0.00012937997295618212
[2m 16s] Epoch 97 [10240/13374] loss = 0.0001359831837362435
[2m 16s] Epoch 97 [12800/13374] loss = 0.00014561507989128587
Test set: Accuracy 5661/6700 84.49
[2m 16s] Epoch 98 [2560/13374] loss = 0.00011436081913416274
[2m 17s] Epoch 98 [5120/13374] loss = 0.00012151204755355139
[2m 17s] Epoch 98 [7680/13374] loss = 0.0001379250541504007
[2m 17s] Epoch 98 [10240/13374] loss = 0.00014502908943541114
[2m 17s] Epoch 98 [12800/13374] loss = 0.00014549825456924736
Test set: Accuracy 5646/6700 84.27
[2m 17s] Epoch 99 [2560/13374] loss = 0.00013728594421991147
[2m 18s] Epoch 99 [5120/13374] loss = 0.0001295024783757981
[2m 18s] Epoch 99 [7680/13374] loss = 0.00013542094529839233
[2m 18s] Epoch 99 [10240/13374] loss = 0.0001407994881446939
[2m 18s] Epoch 99 [12800/13374] loss = 0.0001500850352749694
Test set: Accuracy 5649/6700 84.31
[2m 18s] Epoch 100 [2560/13374] loss = 0.00012577761881402694
[2m 19s] Epoch 100 [5120/13374] loss = 0.00013539093488361685
[2m 19s] Epoch 100 [7680/13374] loss = 0.0001380468806019053
[2m 19s] Epoch 100 [10240/13374] loss = 0.00014034551713848487
[2m 19s] Epoch 100 [12800/13374] loss = 0.0001421017239044886
Test set: Accuracy 5642/6700 84.21

测试精度随迭代次数增加的变化曲线如下图所示:
PyTorch循环神经网络的应用

2. 参考文献

[1]https://www.bilibili.com/video/BV1Y7411d7Ys?p=13

版权声明:本文为博主心️升明月原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_43821559/article/details/123411109

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2022年3月11日
下一篇 2022年3月11日

相关推荐