In [1]:
import pandas as pd # to read CSV files (Comma Separated Values)

train_x = pd.read_csv(filepath_or_buffer='data/kaggle-music-genre/train.x.csv')
train_x.head()


Out[1]:
Id att1 att2 att3 att4 att5 att6 att7 att8 att9 ... att18 att19 att20 att21 att22 att23 att24 att25 att26 msd_track_id
0 1 41.08 6.579 4.307 3.421 3.192 2.076 2.179 2.052 1.794 ... 1.3470 -0.2463 -1.5470 0.17920 -1.1530 -0.7370 0.40750 -0.67190 -0.05147 TRPLTEM128F92E1389
1 2 60.80 5.973 4.344 3.261 2.835 2.725 2.446 1.884 1.962 ... -0.3316 0.3519 -1.4760 0.52700 -2.1960 1.5990 -1.39000 0.22560 -0.72080 TRJWMBQ128F424155E
2 3 51.47 4.971 4.316 2.916 3.112 2.290 2.053 1.934 1.878 ... -0.2803 -0.1603 -0.1355 1.03500 0.2370 1.4890 0.02959 -0.13670 0.10820 TRRZWMO12903CCFCC2
3 4 41.28 6.610 4.411 2.602 2.822 2.126 1.984 1.973 1.945 ... -1.6930 1.0040 -0.3953 0.26710 -1.0450 0.4974 0.03724 1.04500 -0.20000 TRBZRUT12903CE6C04
4 5 54.17 8.945 4.685 4.208 3.154 3.527 2.733 2.202 2.686 ... 2.4690 -0.5449 -0.5622 -0.08968 -0.9823 -0.2445 -1.65800 -0.04825 -0.70950 TRLUJQF128F42AF5BF

5 rows × 28 columns


In [2]:
train_y = pd.read_csv(filepath_or_buffer='data/kaggle-music-genre/train.y.csv')
train_y.head()


Out[2]:
Id class_label
0 1 International
1 2 Vocal
2 3 Latin
3 4 Blues
4 5 Vocal

In [3]:
test_x = pd.read_csv(filepath_or_buffer='data/kaggle-music-genre/test.x.csv')
test_x.head()


Out[3]:
Id att1 att2 att3 att4 att5 att6 att7 att8 att9 ... att17 att18 att19 att20 att21 att22 att23 att24 att25 att26
0 1 38.22 8.076 6.935 4.696 3.856 3.465 2.922 2.568 2.070 ... 3.988 0.4957 0.1836 -2.2210 0.6453 -0.2923 1.2000 -0.09179 0.4674 0.2158
1 2 36.42 6.131 5.364 4.292 3.968 2.937 2.872 2.142 2.050 ... 7.098 1.2290 0.5971 -1.0670 0.9569 -1.8240 2.3130 -0.80890 0.5612 -0.6225
2 3 70.01 5.496 4.698 3.699 3.258 2.293 2.680 2.226 2.034 ... 4.449 0.4773 1.6370 -1.0690 2.4160 -0.6299 1.4190 -0.81960 0.9151 -0.5948
3 4 40.64 7.281 6.702 4.043 3.729 3.043 2.644 2.366 1.940 ... 2.785 1.9000 -1.1370 1.2750 1.7920 -2.1250 1.6090 -0.83230 -0.1998 -0.1218
4 5 38.85 7.118 5.703 4.825 4.088 3.823 3.254 2.551 2.193 ... 4.536 2.1470 1.0200 -0.2656 2.8050 0.2762 0.2504 1.04900 0.3447 -0.7689

5 rows × 27 columns


In [4]:
test_y_sample = pd.read_csv(filepath_or_buffer='data/kaggle-music-genre/submission-random.csv')
test_y_sample.head()


Out[4]:
Id Blues Country Electronic Folk International Jazz Latin New_Age Pop_Rock Rap Reggae RnB Vocal
0 1 0.0964 0.0884 0.0121 0.1004 0.0137 0.1214 0.0883 0.0765 0.0332 0.0445 0.1193 0.1019 0.1038
1 2 0.0121 0.0804 0.0376 0.0289 0.1310 0.0684 0.1044 0.0118 0.1562 0.0585 0.1633 0.1400 0.0073
2 3 0.1291 0.0985 0.0691 0.0356 0.0788 0.0529 0.1185 0.1057 0.1041 0.0075 0.0481 0.1283 0.0238
3 4 0.0453 0.1234 0.0931 0.0126 0.1224 0.0627 0.0269 0.0764 0.0812 0.1337 0.0357 0.0937 0.0930
4 5 0.0600 0.0915 0.0667 0.0947 0.0509 0.0335 0.1251 0.0202 0.1012 0.0365 0.1310 0.0898 0.0991

In [5]:
test_y_sample[:0]


Out[5]:
Id Blues Country Electronic Folk International Jazz Latin New_Age Pop_Rock Rap Reggae RnB Vocal

In [6]:
import numpy as np

train_X = np.array(train_x)
train_Y = np.array(train_y[:]['class_label'])
test_X = np.array(test_x)

# Getting rid of the first and the last column: Id and msd_track_id
X_train_val = np.array(train_X[:, 1:-1], dtype=float)
X_test = np.array(test_X[:, 1:], dtype=float)

train_Y.shape


Out[6]:
(13000,)

In [7]:
from collections import Counter

# Count the freq of the keys in the training labels
counted_labels = Counter(train_Y)
labels_keys = counted_labels.keys()
labels_keys


Out[7]:
dict_keys(['Blues', 'Country', 'Vocal', 'Pop_Rock', 'International', 'New_Age', 'Reggae', 'RnB', 'Electronic', 'Folk', 'Jazz', 'Latin', 'Rap'])

In [8]:
labels_keys_sorted = sorted(labels_keys)
labels_keys_sorted


Out[8]:
['Blues',
 'Country',
 'Electronic',
 'Folk',
 'International',
 'Jazz',
 'Latin',
 'New_Age',
 'Pop_Rock',
 'Rap',
 'Reggae',
 'RnB',
 'Vocal']

In [9]:
# This for loop for creating a dictionary/ vocab
key_to_val = {key: val for val, key in enumerate(labels_keys_sorted)}
key_to_val['Country']
key_to_val


Out[9]:
{'Blues': 0,
 'Country': 1,
 'Electronic': 2,
 'Folk': 3,
 'International': 4,
 'Jazz': 5,
 'Latin': 6,
 'New_Age': 7,
 'Pop_Rock': 8,
 'Rap': 9,
 'Reggae': 10,
 'RnB': 11,
 'Vocal': 12}

In [10]:
val_to_key = {val: key for val, key in enumerate(labels_keys_sorted)}
val_to_key[1]
val_to_key


Out[10]:
{0: 'Blues',
 1: 'Country',
 2: 'Electronic',
 3: 'Folk',
 4: 'International',
 5: 'Jazz',
 6: 'Latin',
 7: 'New_Age',
 8: 'Pop_Rock',
 9: 'Rap',
 10: 'Reggae',
 11: 'RnB',
 12: 'Vocal'}

In [11]:
Y_train_vec = []
for each in train_y[:]['class_label']:
#     print(each, key_to_val[each])
    Y_train_vec.append(key_to_val[each])

Y_train_val = np.array(Y_train_vec)
Y_train_val.shape


Out[11]:
(13000,)

In [12]:
# # Pre-processing: normalizing
# def normalize(X):
#     # max scale for images 255= 2**8= 8 bit grayscale for each channel
#     return (X - X.mean(axis=0)) #/ X.std(axis=0)
# X_train, X_val, X_test = normalize(X=X_train), normalize(X=X_val), normalize(X=X_test)

# Preprocessing: normalizing the data based on the training set
mean = X_train_val.mean(axis=0)
std = X_train_val.std(axis=0)

X_train_val, X_test = (X_train_val - mean)/ std, (X_test - mean)/ std
X_train_val.shape, X_test.shape, X_train_val.dtype, X_test.dtype


Out[12]:
((13000, 26), (10400, 26), dtype('float64'), dtype('float64'))

In [13]:
# Creating validation set: 10% or 1/10 of the training set or whatever dataset with labels/ annotation
valid_size = X_train_val.shape[0]//10
valid_size
X_val = X_train_val[-valid_size:]
Y_val = Y_train_val[-valid_size:]
X_train = X_train_val[: -valid_size]
Y_train = Y_train_val[: -valid_size]
X_train_val.shape, 
X_train.shape, X_val.shape, X_test.shape, Y_val.shape, Y_train.shape 
# X_train.dtype, X_val.dtype
# Y_train.dtype, Y_val


Out[13]:
((11700, 26), (1300, 26), (10400, 26), (1300,), (11700,))

In [15]:
# Model
import impl.layer as l # or from impl.layer import *
from impl.loss import * # import all functions from impl.loss file # import impl.loss as loss_func
from sklearn.utils import shuffle as skshuffle

class FFNN:

    def __init__(self, D, C, H, L, keep_prob):
        self.L = L # number of layers or depth
        self.losses = {'train':[], 'train_acc':[], 'valid':[], 'valid_acc':[]}
        self.keep_prob = keep_prob # 1 - p_dropout
        
        # The adaptive/learnable/updatable random feedforward
        self.model = []
        self.grads = []
        low, high = -1, 1
        
        # Input layer: weights/ biases
        m = dict(W=np.random.uniform(size=(D, H), low=low, high=high) / np.sqrt(D / 2.), 
                 b=np.zeros((1, H)))
        self.model.append(m)
        # Input layer: gradients
        self.grads.append({key: np.zeros_like(val) for key, val in self.model[0].items()})

        # Hidden layers: weights/ biases
        m_L = []
        for _ in range(L):
            m = dict(W=np.random.uniform(size=(H, H), low=low, high=high) / np.sqrt(H / 2.), 
                     b=np.zeros((1, H)))
            m_L.append(m)
        self.model.append(m_L)
        # Hidden layer: gradients
        grad_L = []
        for _ in range(L):
            grad_L.append({key: np.zeros_like(val) for key, val in self.model[1][0].items()})
        self.grads.append(grad_L)
        
        # Output layer: weights/ biases
        m = dict(W=np.random.uniform(size=(H, C), low=low, high=high) / np.sqrt(H / 2.), 
                 b=np.zeros((1, C)))
        self.model.append(m)
        # Outout layer: gradients
        self.grads.append({key: np.zeros_like(val) for key, val in self.model[2].items()})
        
    def fc_forward(self, X, W, b):
        out = (X @ W) + b
        cache = (W, X)
        return out, cache

    def fc_backward(self, dout, cache):
        W, X = cache

        dW = X.T @ dout
        db = np.sum(dout, axis=0).reshape(1, -1) # db_1xn
        dX = dout @ W.T # Backprop

        return dX, dW, db

    def train_forward(self, X, train):
        caches, ys = [], []
        
        # Input layer
        y, fc_cache = self.fc_forward(X=X, W=self.model[0]['W'], b=self.model[0]['b']) # X_1xD, y_1xc
#         y, nl_cache = l.tanh_forward(X=y)
#         y, nl_cache = l.relu_forward(X=y)
        y, nl_cache = l.selu_forward(X=y)
        if train:
            y, do_cache = l.selu_dropout_forward(h=y, q=self.keep_prob)
            caches.append((fc_cache, nl_cache, do_cache))
        X = y.copy() # pass to the next layer
        
        # Hidden layers
        fc_caches, nl_caches, do_caches = [], [], []
        for layer in range(self.L):
            y, fc_cache = self.fc_forward(X=X, W=self.model[1][layer]['W'], b=self.model[1][layer]['b'])
#             y, nl_cache = l.tanh_forward(X=y)
#             y, nl_cache = l.relu_forward(X=y)
            y, nl_cache = l.selu_forward(X=y)
            if train:
                y, do_cache = l.selu_dropout_forward(h=y, q=self.keep_prob)
                fc_caches.append(fc_cache)
                nl_caches.append(nl_cache)
                do_caches.append(do_cache)
            X = y.copy() # pass to next layer
        if train:
            caches.append((fc_caches, nl_caches, do_caches)) # caches[1]            
        
        # Output layer
        y, fc_cache = self.fc_forward(X=X, W=self.model[2]['W'], b=self.model[2]['b'])
        # Softmax is included in loss function
        if train:
            caches.append(fc_cache)

        return y, caches # for backpropating the error

    def loss_function(self, y, y_train):
        
        loss = cross_entropy(y, y_train) # softmax is included
        dy = dcross_entropy(y, y_train) # dsoftmax is included
        
        return loss, dy
        
    def train_backward(self, dy, caches):
        grads = self.grads # initialized by Zero in every iteration/epoch
        
        # Output layer
        fc_cache = caches[2]
        # dSoftmax is included in loss function
        dX, dW, db = self.fc_backward(dout=dy, cache=fc_cache)
        dy = dX.copy()
        grads[2]['W'] = dW
        grads[2]['b'] = db

        # Hidden layer
        fc_caches, nl_caches, do_caches = caches[1]
        for layer in reversed(range(self.L)):
            dy = l.selu_dropout_backward(cache=do_caches[layer], dout=dy)
#             dy = l.tanh_backward(cache=nl_caches[layer], dout=dy) # diffable function
#             dy = l.relu_backward(cache=nl_caches[layer], dout=dy) # diffable function
            dy = l.selu_backward(cache=nl_caches[layer], dout=dy) # diffable function
            dX, dW, db = self.fc_backward(dout=dy, cache=fc_caches[layer])
            dy = dX.copy()
            grads[1][layer]['W'] = dW
            grads[1][layer]['b'] = db
        
        # Input layer
        fc_cache, nl_cache, do_cache = caches[0]
        dy = l.selu_dropout_backward(cache=do_cache, dout=dy)
#         dy = l.tanh_backward(cache=nl_cache, dout=dy) # diffable function
#         dy = l.relu_backward(cache=nl_cache, dout=dy) # diffable function
        dy = l.selu_backward(cache=nl_cache, dout=dy) # diffable function
        _, dW, db = self.fc_backward(dout=dy, cache=fc_cache)
        grads[0]['W'] = dW
        grads[0]['b'] = db

        return grads
    
    def test(self, X):
        y_logit, _ = self.train_forward(X, train=False)
        
        # if self.mode == 'classification':
        y_prob = l.softmax(y_logit) # for accuracy == acc
        y_pred = np.argmax(y_prob, axis=1) # for loss ==err
        
        return y_pred, y_logit
        
    def get_minibatch(self, X, y, minibatch_size, shuffle):
        minibatches = []

        if shuffle:
            X, y = skshuffle(X, y)

        for i in range(0, X.shape[0], minibatch_size):
            X_mini = X[i:i + minibatch_size]
            y_mini = y[i:i + minibatch_size]
            minibatches.append((X_mini, y_mini))

        return minibatches

    def sgd(self, train_set, val_set, alpha, mb_size, n_iter, print_after):
        X_train, y_train = train_set
        X_val, y_val = val_set

        # Momentums
        M, R = [], []
        M.append({key: np.zeros_like(val) for key, val in self.model[0].items()})
        R.append({key: np.zeros_like(val) for key, val in self.model[0].items()})

        M_, R_ = [], []
        for layer in range(self.L):
            M_.append({key: np.zeros_like(val) for key, val in self.model[1][layer].items()})
            R_.append({key: np.zeros_like(val) for key, val in self.model[1][layer].items()})
        M.append(M_)
        R.append(R_)

        M.append({key: np.zeros_like(val) for key, val in self.model[2].items()})
        R.append({key: np.zeros_like(val) for key, val in self.model[2].items()})

        # Learning decay
        beta1 = .9
        beta2 = .99

        # Epochs
        for iter in range(1, n_iter + 1):

            # Minibatches
            minibatches = self.get_minibatch(X_train, y_train, mb_size, shuffle=True)
            idx = np.random.randint(0, len(minibatches))
            X_mini, y_mini = minibatches[idx]
            
            # Train the model
            y, caches = self.train_forward(X_mini, train=True)
            _, dy = self.loss_function(y, y_mini)
            grad = self.train_backward(dy, caches) 
            
            # Update the model
            for key in grad[0].keys():
                M[0][key] = l.exp_running_avg(M[0][key], grad[0][key], beta1)
                R[0][key] = l.exp_running_avg(R[0][key], grad[0][key]**2, beta2)
                m_k_hat = M[0][key] / (1. - (beta1**(iter)))
                r_k_hat = R[0][key] / (1. - (beta2**(iter)))
                self.model[0][key] -= alpha * m_k_hat / (np.sqrt(r_k_hat) + l.eps)

            for layer in range(self.L):
                for key in grad[1][layer].keys():
                    M[1][layer][key] = l.exp_running_avg(M[1][layer][key], grad[1][layer][key], beta1)
                    R[1][layer][key] = l.exp_running_avg(R[1][layer][key], grad[1][layer][key]**2, beta2)
                    m_k_hat = M[1][layer][key] / (1. - (beta1**(iter)))
                    r_k_hat = R[1][layer][key] / (1. - (beta2**(iter)))
                    self.model[1][layer][key] -= alpha * m_k_hat / (np.sqrt(r_k_hat) + l.eps)

            for key in grad[2].keys():
                M[2][key] = l.exp_running_avg(M[2][key], grad[2][key], beta1)
                R[2][key] = l.exp_running_avg(R[2][key], grad[2][key]**2, beta2)
                m_k_hat = M[2][key] / (1. - (beta1**(iter)))
                r_k_hat = R[2][key] / (1. - (beta2**(iter)))
                self.model[2][key] -= alpha * m_k_hat / (np.sqrt(r_k_hat) + l.eps)
                
            # Trained model info
            y_pred, y_logit = self.test(X_mini)
            loss, _ = self.loss_function(y_logit, y_mini) # softmax is included in entropy loss function
            self.losses['train'].append(loss)
            acc = np.mean(y_pred == y_mini) # confusion matrix
            self.losses['train_acc'].append(acc)

            # Validated model info
            y_pred, y_logit = self.test(X_val)
            valid_loss, _ = self.loss_function(y_logit, y_val) # softmax is included in entropy loss function
            self.losses['valid'].append(valid_loss)
            valid_acc = np.mean(y_pred == y_val) # confusion matrix
            self.losses['valid_acc'].append(valid_acc)
            
            # Print the model info: loss & accuracy or err & acc
            if iter % print_after == 0:
                print('Iter: {}, train loss: {:.4f}, train acc: {:.4f}, valid loss: {:.4f}, valid acc: {:.4f}'.format(
                    iter, loss, acc, valid_loss, valid_acc))

            #         # Test the final model
            #         y_pred, y_logit = nn.test(X_test)
            #         loss, _ = self.loss_function(y_logit, y_test) # softmax is included in entropy loss function
            #         acc = np.mean(y_pred == y_test)
            #         print('Last iteration - Test accuracy mean: {:.4f}, std: {:.4f}, loss: {:.4f}'.format(
            #             acc.mean(), acc.std(), loss))

In [16]:
Y_train.shape, X_train.shape, X_val.shape, Y_val.shape


Out[16]:
((11700,), (11700, 26), (1300, 26), (1300,))

In [30]:
# Hyper-parameters
n_iter = 100000 # number of epochs
alpha = 1e-3 # learning_rate
mb_size = 64 # 2**10==1024 # width, timestep for sequential data or minibatch size
print_after = 100 # n_iter//10 # print loss for train, valid, and test
num_hidden_units = 32 # number of kernels/ filters in each layer
num_input_units = X_train.shape[1] # noise added at the input lavel as input noise we can use dX or for more improvement
num_output_units = Y_train.max() + 1 # number of classes in this classification problem
# num_output_units = Y_train.shape[1] # number of classes in this classification problem
num_layers = 2 # depth
keep_prob = 0.95 # SELU dropout

# Build the model/NN and learn it: running session.
nn = FFNN(C=num_output_units, D=num_input_units, H=num_hidden_units, L=num_layers, keep_prob=keep_prob)

nn.sgd(train_set=(X_train, Y_train), val_set=(X_val, Y_val), mb_size=mb_size, alpha=alpha, 
           n_iter=n_iter, print_after=print_after)


Iter: 100, train loss: 2.2348, train acc: 0.2656, valid loss: 2.1873, valid acc: 0.2577
Iter: 200, train loss: 2.0841, train acc: 0.3125, valid loss: 2.1241, valid acc: 0.2823
Iter: 300, train loss: 1.9221, train acc: 0.3125, valid loss: 2.1000, valid acc: 0.2946
Iter: 400, train loss: 2.0342, train acc: 0.2188, valid loss: 2.0815, valid acc: 0.3062
Iter: 500, train loss: 1.8491, train acc: 0.4375, valid loss: 2.0772, valid acc: 0.3046
Iter: 600, train loss: 2.1459, train acc: 0.3906, valid loss: 2.0800, valid acc: 0.3177
Iter: 700, train loss: 1.9785, train acc: 0.3594, valid loss: 2.0658, valid acc: 0.3162
Iter: 800, train loss: 1.7177, train acc: 0.3594, valid loss: 2.0711, valid acc: 0.3154
Iter: 900, train loss: 2.0029, train acc: 0.4219, valid loss: 2.0629, valid acc: 0.3192
Iter: 1000, train loss: 1.9380, train acc: 0.3281, valid loss: 2.0641, valid acc: 0.3115
Iter: 1100, train loss: 1.8061, train acc: 0.4531, valid loss: 2.0619, valid acc: 0.3215
Iter: 1200, train loss: 2.0008, train acc: 0.4062, valid loss: 2.0583, valid acc: 0.3192
Iter: 1300, train loss: 1.9126, train acc: 0.2969, valid loss: 2.0491, valid acc: 0.3323
Iter: 1400, train loss: 1.7665, train acc: 0.4219, valid loss: 2.0531, valid acc: 0.3277
Iter: 1500, train loss: 2.0207, train acc: 0.4375, valid loss: 2.0285, valid acc: 0.3377
Iter: 1600, train loss: 1.8879, train acc: 0.3125, valid loss: 2.0482, valid acc: 0.3292
Iter: 1700, train loss: 2.1184, train acc: 0.2812, valid loss: 2.0244, valid acc: 0.3215
Iter: 1800, train loss: 1.7843, train acc: 0.4375, valid loss: 2.0256, valid acc: 0.3431
Iter: 1900, train loss: 1.8499, train acc: 0.3281, valid loss: 2.0265, valid acc: 0.3323
Iter: 2000, train loss: 1.9414, train acc: 0.3281, valid loss: 2.0347, valid acc: 0.3177
Iter: 2100, train loss: 1.7620, train acc: 0.3906, valid loss: 2.0160, valid acc: 0.3315
Iter: 2200, train loss: 1.8439, train acc: 0.4688, valid loss: 2.0225, valid acc: 0.3362
Iter: 2300, train loss: 1.9461, train acc: 0.3281, valid loss: 2.0170, valid acc: 0.3400
Iter: 2400, train loss: 2.0205, train acc: 0.3438, valid loss: 2.0159, valid acc: 0.3308
Iter: 2500, train loss: 1.9881, train acc: 0.3125, valid loss: 2.0130, valid acc: 0.3331
Iter: 2600, train loss: 2.0801, train acc: 0.2344, valid loss: 2.0379, valid acc: 0.3369
Iter: 2700, train loss: 2.1279, train acc: 0.2500, valid loss: 2.0229, valid acc: 0.3315
Iter: 2800, train loss: 1.8614, train acc: 0.4219, valid loss: 2.0246, valid acc: 0.3369
Iter: 2900, train loss: 1.8106, train acc: 0.3906, valid loss: 2.0218, valid acc: 0.3369
Iter: 3000, train loss: 1.9367, train acc: 0.3594, valid loss: 2.0197, valid acc: 0.3400
Iter: 3100, train loss: 2.1050, train acc: 0.3281, valid loss: 2.0080, valid acc: 0.3477
Iter: 3200, train loss: 1.7526, train acc: 0.4062, valid loss: 2.0282, valid acc: 0.3323
Iter: 3300, train loss: 1.9041, train acc: 0.3281, valid loss: 2.0191, valid acc: 0.3508
Iter: 3400, train loss: 1.5985, train acc: 0.4219, valid loss: 2.0174, valid acc: 0.3462
Iter: 3500, train loss: 1.8554, train acc: 0.4375, valid loss: 2.0048, valid acc: 0.3423
Iter: 3600, train loss: 1.7316, train acc: 0.4531, valid loss: 2.0009, valid acc: 0.3477
Iter: 3700, train loss: 1.8266, train acc: 0.4062, valid loss: 2.0038, valid acc: 0.3546
Iter: 3800, train loss: 1.8308, train acc: 0.3281, valid loss: 2.0102, valid acc: 0.3477
Iter: 3900, train loss: 1.8038, train acc: 0.3906, valid loss: 1.9967, valid acc: 0.3569
Iter: 4000, train loss: 2.1126, train acc: 0.2969, valid loss: 1.9962, valid acc: 0.3538
Iter: 4100, train loss: 1.6975, train acc: 0.4688, valid loss: 2.0009, valid acc: 0.3531
Iter: 4200, train loss: 1.6770, train acc: 0.3750, valid loss: 1.9988, valid acc: 0.3423
Iter: 4300, train loss: 1.9951, train acc: 0.3750, valid loss: 2.0018, valid acc: 0.3515
Iter: 4400, train loss: 1.6198, train acc: 0.4531, valid loss: 1.9988, valid acc: 0.3454
Iter: 4500, train loss: 1.8349, train acc: 0.4219, valid loss: 2.0012, valid acc: 0.3538
Iter: 4600, train loss: 2.0048, train acc: 0.3438, valid loss: 2.0103, valid acc: 0.3585
Iter: 4700, train loss: 1.7214, train acc: 0.4688, valid loss: 2.0076, valid acc: 0.3492
Iter: 4800, train loss: 1.7530, train acc: 0.4219, valid loss: 2.0091, valid acc: 0.3485
Iter: 4900, train loss: 1.5864, train acc: 0.5000, valid loss: 1.9978, valid acc: 0.3500
Iter: 5000, train loss: 1.8995, train acc: 0.3750, valid loss: 1.9900, valid acc: 0.3538
Iter: 5100, train loss: 1.9091, train acc: 0.3438, valid loss: 1.9959, valid acc: 0.3577
Iter: 5200, train loss: 1.8743, train acc: 0.3281, valid loss: 1.9741, valid acc: 0.3615
Iter: 5300, train loss: 1.9279, train acc: 0.3594, valid loss: 1.9951, valid acc: 0.3608
Iter: 5400, train loss: 1.6679, train acc: 0.5312, valid loss: 2.0040, valid acc: 0.3577
Iter: 5500, train loss: 1.7708, train acc: 0.3438, valid loss: 1.9968, valid acc: 0.3523
Iter: 5600, train loss: 1.6907, train acc: 0.4375, valid loss: 1.9886, valid acc: 0.3546
Iter: 5700, train loss: 1.7456, train acc: 0.3750, valid loss: 1.9838, valid acc: 0.3585
Iter: 5800, train loss: 1.6772, train acc: 0.3438, valid loss: 1.9965, valid acc: 0.3577
Iter: 5900, train loss: 1.7497, train acc: 0.4375, valid loss: 1.9938, valid acc: 0.3623
Iter: 6000, train loss: 2.0005, train acc: 0.3281, valid loss: 1.9888, valid acc: 0.3662
Iter: 6100, train loss: 1.5656, train acc: 0.5000, valid loss: 1.9842, valid acc: 0.3646
Iter: 6200, train loss: 1.8354, train acc: 0.4375, valid loss: 1.9825, valid acc: 0.3623
Iter: 6300, train loss: 1.6265, train acc: 0.5000, valid loss: 1.9697, valid acc: 0.3654
Iter: 6400, train loss: 1.5785, train acc: 0.5312, valid loss: 1.9728, valid acc: 0.3623
Iter: 6500, train loss: 2.0364, train acc: 0.3125, valid loss: 1.9878, valid acc: 0.3638
Iter: 6600, train loss: 2.2661, train acc: 0.2812, valid loss: 1.9718, valid acc: 0.3723
Iter: 6700, train loss: 1.7646, train acc: 0.4219, valid loss: 1.9806, valid acc: 0.3623
Iter: 6800, train loss: 1.8073, train acc: 0.3438, valid loss: 1.9892, valid acc: 0.3485
Iter: 6900, train loss: 1.6416, train acc: 0.4531, valid loss: 1.9825, valid acc: 0.3631
Iter: 7000, train loss: 1.5725, train acc: 0.5000, valid loss: 1.9865, valid acc: 0.3654
Iter: 7100, train loss: 1.6457, train acc: 0.4375, valid loss: 2.0001, valid acc: 0.3608
Iter: 7200, train loss: 2.0089, train acc: 0.3750, valid loss: 1.9805, valid acc: 0.3623
Iter: 7300, train loss: 1.5301, train acc: 0.4844, valid loss: 2.0025, valid acc: 0.3562
Iter: 7400, train loss: 1.9919, train acc: 0.3750, valid loss: 1.9906, valid acc: 0.3631
Iter: 7500, train loss: 1.8606, train acc: 0.4219, valid loss: 1.9909, valid acc: 0.3638
Iter: 7600, train loss: 1.7890, train acc: 0.4219, valid loss: 1.9775, valid acc: 0.3692
Iter: 7700, train loss: 1.6928, train acc: 0.4531, valid loss: 1.9656, valid acc: 0.3577
Iter: 7800, train loss: 1.9852, train acc: 0.3750, valid loss: 1.9752, valid acc: 0.3700
Iter: 7900, train loss: 1.9238, train acc: 0.4688, valid loss: 1.9763, valid acc: 0.3577
Iter: 8000, train loss: 1.6364, train acc: 0.5000, valid loss: 1.9762, valid acc: 0.3677
Iter: 8100, train loss: 1.6788, train acc: 0.4219, valid loss: 1.9713, valid acc: 0.3685
Iter: 8200, train loss: 1.8666, train acc: 0.3906, valid loss: 1.9894, valid acc: 0.3546
Iter: 8300, train loss: 1.4534, train acc: 0.5156, valid loss: 1.9924, valid acc: 0.3577
Iter: 8400, train loss: 1.5885, train acc: 0.5000, valid loss: 1.9831, valid acc: 0.3662
Iter: 8500, train loss: 1.7176, train acc: 0.4062, valid loss: 1.9767, valid acc: 0.3585
Iter: 8600, train loss: 1.3700, train acc: 0.5156, valid loss: 1.9702, valid acc: 0.3638
Iter: 8700, train loss: 1.6264, train acc: 0.4531, valid loss: 1.9746, valid acc: 0.3669
Iter: 8800, train loss: 1.9133, train acc: 0.4375, valid loss: 1.9827, valid acc: 0.3623
Iter: 8900, train loss: 1.5797, train acc: 0.5000, valid loss: 1.9810, valid acc: 0.3608
Iter: 9000, train loss: 1.6881, train acc: 0.4688, valid loss: 1.9736, valid acc: 0.3631
Iter: 9100, train loss: 2.0014, train acc: 0.3906, valid loss: 1.9857, valid acc: 0.3654
Iter: 9200, train loss: 1.5708, train acc: 0.4844, valid loss: 1.9784, valid acc: 0.3592
Iter: 9300, train loss: 1.7261, train acc: 0.4062, valid loss: 1.9863, valid acc: 0.3662
Iter: 9400, train loss: 1.7615, train acc: 0.4062, valid loss: 1.9764, valid acc: 0.3646
Iter: 9500, train loss: 1.3543, train acc: 0.5625, valid loss: 1.9752, valid acc: 0.3669
Iter: 9600, train loss: 1.8790, train acc: 0.3906, valid loss: 1.9860, valid acc: 0.3623
Iter: 9700, train loss: 1.8520, train acc: 0.3750, valid loss: 1.9743, valid acc: 0.3646
Iter: 9800, train loss: 1.7997, train acc: 0.4531, valid loss: 1.9835, valid acc: 0.3654
Iter: 9900, train loss: 2.0369, train acc: 0.2969, valid loss: 1.9916, valid acc: 0.3623
Iter: 10000, train loss: 1.7792, train acc: 0.4062, valid loss: 1.9775, valid acc: 0.3608
Iter: 10100, train loss: 1.7888, train acc: 0.4375, valid loss: 1.9787, valid acc: 0.3677
Iter: 10200, train loss: 1.8597, train acc: 0.4219, valid loss: 1.9795, valid acc: 0.3662
Iter: 10300, train loss: 1.7453, train acc: 0.4844, valid loss: 1.9870, valid acc: 0.3700
Iter: 10400, train loss: 1.9795, train acc: 0.3594, valid loss: 1.9869, valid acc: 0.3708
Iter: 10500, train loss: 1.7902, train acc: 0.3438, valid loss: 1.9865, valid acc: 0.3700
Iter: 10600, train loss: 1.8258, train acc: 0.4375, valid loss: 1.9889, valid acc: 0.3692
Iter: 10700, train loss: 1.5997, train acc: 0.5000, valid loss: 1.9850, valid acc: 0.3654
Iter: 10800, train loss: 2.1123, train acc: 0.2500, valid loss: 1.9858, valid acc: 0.3638
Iter: 10900, train loss: 1.7483, train acc: 0.4531, valid loss: 1.9855, valid acc: 0.3669
Iter: 11000, train loss: 1.8668, train acc: 0.3594, valid loss: 1.9842, valid acc: 0.3708
Iter: 11100, train loss: 1.8892, train acc: 0.3281, valid loss: 1.9996, valid acc: 0.3585
Iter: 11200, train loss: 1.9268, train acc: 0.3438, valid loss: 1.9890, valid acc: 0.3662
Iter: 11300, train loss: 1.6966, train acc: 0.4219, valid loss: 1.9784, valid acc: 0.3654
Iter: 11400, train loss: 1.8189, train acc: 0.3750, valid loss: 1.9869, valid acc: 0.3754
Iter: 11500, train loss: 1.6999, train acc: 0.5000, valid loss: 1.9973, valid acc: 0.3708
Iter: 11600, train loss: 1.6724, train acc: 0.5000, valid loss: 1.9842, valid acc: 0.3731
Iter: 11700, train loss: 1.5066, train acc: 0.5312, valid loss: 1.9856, valid acc: 0.3746
Iter: 11800, train loss: 1.9294, train acc: 0.4375, valid loss: 1.9868, valid acc: 0.3685
Iter: 11900, train loss: 1.5172, train acc: 0.4844, valid loss: 2.0036, valid acc: 0.3646
Iter: 12000, train loss: 1.6742, train acc: 0.4688, valid loss: 1.9817, valid acc: 0.3662
Iter: 12100, train loss: 1.7209, train acc: 0.4375, valid loss: 1.9800, valid acc: 0.3723
Iter: 12200, train loss: 1.7463, train acc: 0.4062, valid loss: 1.9695, valid acc: 0.3708
Iter: 12300, train loss: 1.6990, train acc: 0.4688, valid loss: 1.9775, valid acc: 0.3669
Iter: 12400, train loss: 1.9473, train acc: 0.4062, valid loss: 2.0067, valid acc: 0.3731
Iter: 12500, train loss: 1.7582, train acc: 0.3906, valid loss: 1.9855, valid acc: 0.3662
Iter: 12600, train loss: 1.5430, train acc: 0.4688, valid loss: 1.9936, valid acc: 0.3708
Iter: 12700, train loss: 2.0546, train acc: 0.2812, valid loss: 1.9827, valid acc: 0.3769
Iter: 12800, train loss: 1.7581, train acc: 0.3906, valid loss: 1.9948, valid acc: 0.3723
Iter: 12900, train loss: 1.7557, train acc: 0.3438, valid loss: 1.9846, valid acc: 0.3769
Iter: 13000, train loss: 1.7743, train acc: 0.4062, valid loss: 1.9955, valid acc: 0.3723
Iter: 13100, train loss: 1.7389, train acc: 0.4375, valid loss: 1.9816, valid acc: 0.3731
Iter: 13200, train loss: 1.8181, train acc: 0.4844, valid loss: 1.9836, valid acc: 0.3669
Iter: 13300, train loss: 1.5884, train acc: 0.5312, valid loss: 1.9974, valid acc: 0.3692
Iter: 13400, train loss: 1.6453, train acc: 0.4219, valid loss: 1.9824, valid acc: 0.3638
Iter: 13500, train loss: 1.6121, train acc: 0.4688, valid loss: 1.9901, valid acc: 0.3769
Iter: 13600, train loss: 1.8197, train acc: 0.3594, valid loss: 1.9822, valid acc: 0.3738
Iter: 13700, train loss: 1.9175, train acc: 0.3281, valid loss: 1.9909, valid acc: 0.3723
Iter: 13800, train loss: 1.5670, train acc: 0.4531, valid loss: 2.0017, valid acc: 0.3785
Iter: 13900, train loss: 1.5816, train acc: 0.4688, valid loss: 2.0039, valid acc: 0.3715
Iter: 14000, train loss: 1.6962, train acc: 0.4062, valid loss: 2.0029, valid acc: 0.3685
Iter: 14100, train loss: 1.6235, train acc: 0.4219, valid loss: 1.9906, valid acc: 0.3692
Iter: 14200, train loss: 1.5513, train acc: 0.5156, valid loss: 1.9870, valid acc: 0.3738
Iter: 14300, train loss: 1.4900, train acc: 0.5000, valid loss: 1.9740, valid acc: 0.3831
Iter: 14400, train loss: 1.8352, train acc: 0.4219, valid loss: 1.9938, valid acc: 0.3654
Iter: 14500, train loss: 1.6633, train acc: 0.4531, valid loss: 1.9928, valid acc: 0.3746
Iter: 14600, train loss: 1.7090, train acc: 0.4531, valid loss: 1.9922, valid acc: 0.3708
Iter: 14700, train loss: 1.4036, train acc: 0.5469, valid loss: 1.9923, valid acc: 0.3662
Iter: 14800, train loss: 1.6814, train acc: 0.4844, valid loss: 1.9924, valid acc: 0.3738
Iter: 14900, train loss: 1.6452, train acc: 0.4688, valid loss: 1.9892, valid acc: 0.3792
Iter: 15000, train loss: 1.9671, train acc: 0.3125, valid loss: 1.9936, valid acc: 0.3792
Iter: 15100, train loss: 1.4808, train acc: 0.5469, valid loss: 1.9877, valid acc: 0.3792
Iter: 15200, train loss: 1.7383, train acc: 0.3906, valid loss: 1.9949, valid acc: 0.3669
Iter: 15300, train loss: 1.7349, train acc: 0.4062, valid loss: 1.9956, valid acc: 0.3731
Iter: 15400, train loss: 1.8304, train acc: 0.2812, valid loss: 1.9710, valid acc: 0.3646
Iter: 15500, train loss: 1.8445, train acc: 0.4062, valid loss: 1.9869, valid acc: 0.3654
Iter: 15600, train loss: 1.3459, train acc: 0.5312, valid loss: 1.9884, valid acc: 0.3738
Iter: 15700, train loss: 1.5913, train acc: 0.4844, valid loss: 2.0011, valid acc: 0.3785
Iter: 15800, train loss: 1.7897, train acc: 0.3750, valid loss: 1.9908, valid acc: 0.3700
Iter: 15900, train loss: 1.5953, train acc: 0.5000, valid loss: 1.9989, valid acc: 0.3731
Iter: 16000, train loss: 1.5814, train acc: 0.4844, valid loss: 2.0111, valid acc: 0.3762
Iter: 16100, train loss: 1.7115, train acc: 0.4219, valid loss: 2.0046, valid acc: 0.3708
Iter: 16200, train loss: 1.8515, train acc: 0.4531, valid loss: 1.9937, valid acc: 0.3692
Iter: 16300, train loss: 1.5320, train acc: 0.4531, valid loss: 1.9984, valid acc: 0.3738
Iter: 16400, train loss: 1.7893, train acc: 0.3750, valid loss: 1.9996, valid acc: 0.3692
Iter: 16500, train loss: 1.7793, train acc: 0.4062, valid loss: 1.9935, valid acc: 0.3731
Iter: 16600, train loss: 1.7379, train acc: 0.4219, valid loss: 2.0052, valid acc: 0.3738
Iter: 16700, train loss: 1.7144, train acc: 0.4688, valid loss: 1.9950, valid acc: 0.3738
Iter: 16800, train loss: 2.1061, train acc: 0.3281, valid loss: 2.0123, valid acc: 0.3731
Iter: 16900, train loss: 1.7251, train acc: 0.4219, valid loss: 1.9942, valid acc: 0.3669
Iter: 17000, train loss: 1.9369, train acc: 0.4219, valid loss: 2.0096, valid acc: 0.3700
Iter: 17100, train loss: 1.4870, train acc: 0.4844, valid loss: 1.9908, valid acc: 0.3692
Iter: 17200, train loss: 1.7867, train acc: 0.3438, valid loss: 1.9909, valid acc: 0.3738
Iter: 17300, train loss: 2.0089, train acc: 0.3906, valid loss: 2.0015, valid acc: 0.3600
Iter: 17400, train loss: 1.6006, train acc: 0.4062, valid loss: 1.9901, valid acc: 0.3746
Iter: 17500, train loss: 1.7909, train acc: 0.4375, valid loss: 1.9829, valid acc: 0.3669
Iter: 17600, train loss: 1.7015, train acc: 0.4531, valid loss: 1.9929, valid acc: 0.3692
Iter: 17700, train loss: 1.8609, train acc: 0.4062, valid loss: 2.0006, valid acc: 0.3646
Iter: 17800, train loss: 1.7500, train acc: 0.5000, valid loss: 1.9989, valid acc: 0.3669
Iter: 17900, train loss: 1.7054, train acc: 0.4844, valid loss: 1.9867, valid acc: 0.3723
Iter: 18000, train loss: 1.9013, train acc: 0.3438, valid loss: 1.9960, valid acc: 0.3708
Iter: 18100, train loss: 1.8048, train acc: 0.4062, valid loss: 1.9899, valid acc: 0.3723
Iter: 18200, train loss: 1.9031, train acc: 0.3750, valid loss: 1.9908, valid acc: 0.3623
Iter: 18300, train loss: 1.7645, train acc: 0.4062, valid loss: 2.0012, valid acc: 0.3692
Iter: 18400, train loss: 1.7921, train acc: 0.4219, valid loss: 1.9973, valid acc: 0.3692
Iter: 18500, train loss: 1.8122, train acc: 0.3438, valid loss: 2.0044, valid acc: 0.3677
Iter: 18600, train loss: 1.7941, train acc: 0.4531, valid loss: 2.0117, valid acc: 0.3708
Iter: 18700, train loss: 1.5311, train acc: 0.4688, valid loss: 1.9950, valid acc: 0.3808
Iter: 18800, train loss: 1.7995, train acc: 0.4531, valid loss: 1.9971, valid acc: 0.3708
Iter: 18900, train loss: 2.0592, train acc: 0.2500, valid loss: 1.9971, valid acc: 0.3815
Iter: 19000, train loss: 1.5056, train acc: 0.4844, valid loss: 2.0036, valid acc: 0.3785
Iter: 19100, train loss: 1.7119, train acc: 0.4688, valid loss: 2.0141, valid acc: 0.3700
Iter: 19200, train loss: 1.7175, train acc: 0.3750, valid loss: 1.9973, valid acc: 0.3692
Iter: 19300, train loss: 1.7742, train acc: 0.4062, valid loss: 2.0039, valid acc: 0.3685
Iter: 19400, train loss: 1.6200, train acc: 0.4844, valid loss: 1.9996, valid acc: 0.3746
Iter: 19500, train loss: 1.6497, train acc: 0.3750, valid loss: 1.9956, valid acc: 0.3685
Iter: 19600, train loss: 1.7601, train acc: 0.4062, valid loss: 2.0143, valid acc: 0.3685
Iter: 19700, train loss: 1.4577, train acc: 0.4531, valid loss: 2.0010, valid acc: 0.3785
Iter: 19800, train loss: 1.5623, train acc: 0.5312, valid loss: 1.9991, valid acc: 0.3800
Iter: 19900, train loss: 1.6333, train acc: 0.4688, valid loss: 2.0046, valid acc: 0.3685
Iter: 20000, train loss: 1.6607, train acc: 0.4688, valid loss: 1.9958, valid acc: 0.3631
Iter: 20100, train loss: 1.8237, train acc: 0.4062, valid loss: 2.0154, valid acc: 0.3715
Iter: 20200, train loss: 1.8531, train acc: 0.3906, valid loss: 2.0147, valid acc: 0.3708
Iter: 20300, train loss: 1.9813, train acc: 0.3125, valid loss: 2.0128, valid acc: 0.3662
Iter: 20400, train loss: 1.2720, train acc: 0.6250, valid loss: 1.9956, valid acc: 0.3638
Iter: 20500, train loss: 1.6250, train acc: 0.3750, valid loss: 2.0076, valid acc: 0.3638
Iter: 20600, train loss: 1.8471, train acc: 0.4219, valid loss: 2.0258, valid acc: 0.3700
Iter: 20700, train loss: 1.9136, train acc: 0.3594, valid loss: 2.0116, valid acc: 0.3631
Iter: 20800, train loss: 1.6063, train acc: 0.5000, valid loss: 2.0072, valid acc: 0.3654
Iter: 20900, train loss: 1.9097, train acc: 0.3906, valid loss: 1.9886, valid acc: 0.3762
Iter: 21000, train loss: 1.6974, train acc: 0.4531, valid loss: 1.9959, valid acc: 0.3738
Iter: 21100, train loss: 2.0786, train acc: 0.3654, valid loss: 2.0040, valid acc: 0.3731
Iter: 21200, train loss: 1.5120, train acc: 0.4219, valid loss: 1.9940, valid acc: 0.3769
Iter: 21300, train loss: 1.8082, train acc: 0.4375, valid loss: 1.9978, valid acc: 0.3746
Iter: 21400, train loss: 1.6762, train acc: 0.5156, valid loss: 1.9959, valid acc: 0.3662
Iter: 21500, train loss: 1.5580, train acc: 0.4688, valid loss: 2.0014, valid acc: 0.3762
Iter: 21600, train loss: 1.6430, train acc: 0.5000, valid loss: 2.0062, valid acc: 0.3738
Iter: 21700, train loss: 1.7923, train acc: 0.4219, valid loss: 2.0097, valid acc: 0.3746
Iter: 21800, train loss: 1.6508, train acc: 0.4219, valid loss: 2.0115, valid acc: 0.3685
Iter: 21900, train loss: 1.6666, train acc: 0.4844, valid loss: 2.0011, valid acc: 0.3669
Iter: 22000, train loss: 1.7681, train acc: 0.4688, valid loss: 2.0003, valid acc: 0.3677
Iter: 22100, train loss: 1.7481, train acc: 0.3906, valid loss: 2.0167, valid acc: 0.3623
Iter: 22200, train loss: 1.7910, train acc: 0.3906, valid loss: 2.0102, valid acc: 0.3700
Iter: 22300, train loss: 1.6797, train acc: 0.4219, valid loss: 2.0002, valid acc: 0.3631
Iter: 22400, train loss: 1.8211, train acc: 0.3281, valid loss: 1.9938, valid acc: 0.3685
Iter: 22500, train loss: 1.5687, train acc: 0.5156, valid loss: 1.9964, valid acc: 0.3723
Iter: 22600, train loss: 1.8070, train acc: 0.3438, valid loss: 2.0157, valid acc: 0.3754
Iter: 22700, train loss: 1.6515, train acc: 0.4844, valid loss: 2.0015, valid acc: 0.3777
Iter: 22800, train loss: 1.6404, train acc: 0.4531, valid loss: 2.0026, valid acc: 0.3731
Iter: 22900, train loss: 1.8336, train acc: 0.3281, valid loss: 1.9999, valid acc: 0.3692
Iter: 23000, train loss: 1.6941, train acc: 0.4688, valid loss: 2.0021, valid acc: 0.3731
Iter: 23100, train loss: 1.4947, train acc: 0.5000, valid loss: 2.0030, valid acc: 0.3738
Iter: 23200, train loss: 1.7769, train acc: 0.4688, valid loss: 2.0126, valid acc: 0.3738
Iter: 23300, train loss: 1.8834, train acc: 0.4219, valid loss: 2.0204, valid acc: 0.3731
Iter: 23400, train loss: 1.6796, train acc: 0.4062, valid loss: 2.0120, valid acc: 0.3608
Iter: 23500, train loss: 1.6495, train acc: 0.5000, valid loss: 2.0088, valid acc: 0.3662
Iter: 23600, train loss: 1.2895, train acc: 0.5469, valid loss: 2.0224, valid acc: 0.3592
Iter: 23700, train loss: 1.5111, train acc: 0.4531, valid loss: 2.0285, valid acc: 0.3608
Iter: 23800, train loss: 1.7916, train acc: 0.4219, valid loss: 2.0257, valid acc: 0.3700
Iter: 23900, train loss: 1.4648, train acc: 0.4531, valid loss: 2.0230, valid acc: 0.3631
Iter: 24000, train loss: 1.7409, train acc: 0.4375, valid loss: 2.0198, valid acc: 0.3669
Iter: 24100, train loss: 1.5879, train acc: 0.5000, valid loss: 2.0245, valid acc: 0.3546
Iter: 24200, train loss: 1.7585, train acc: 0.4219, valid loss: 2.0196, valid acc: 0.3554
Iter: 24300, train loss: 1.3525, train acc: 0.5156, valid loss: 2.0168, valid acc: 0.3577
Iter: 24400, train loss: 1.5036, train acc: 0.5156, valid loss: 2.0369, valid acc: 0.3615
Iter: 24500, train loss: 1.6192, train acc: 0.5000, valid loss: 2.0201, valid acc: 0.3623
Iter: 24600, train loss: 1.5431, train acc: 0.5625, valid loss: 2.0126, valid acc: 0.3600
Iter: 24700, train loss: 1.7423, train acc: 0.3750, valid loss: 2.0205, valid acc: 0.3677
Iter: 24800, train loss: 1.5504, train acc: 0.5312, valid loss: 2.0136, valid acc: 0.3623
Iter: 24900, train loss: 1.6931, train acc: 0.4531, valid loss: 2.0418, valid acc: 0.3731
Iter: 25000, train loss: 1.6145, train acc: 0.4688, valid loss: 2.0319, valid acc: 0.3700
Iter: 25100, train loss: 1.7381, train acc: 0.4531, valid loss: 2.0371, valid acc: 0.3685
Iter: 25200, train loss: 1.6294, train acc: 0.4375, valid loss: 2.0171, valid acc: 0.3808
Iter: 25300, train loss: 1.7987, train acc: 0.3594, valid loss: 2.0051, valid acc: 0.3708
Iter: 25400, train loss: 1.7734, train acc: 0.3906, valid loss: 2.0174, valid acc: 0.3700
Iter: 25500, train loss: 1.8058, train acc: 0.3906, valid loss: 2.0113, valid acc: 0.3754
Iter: 25600, train loss: 1.4078, train acc: 0.5156, valid loss: 2.0222, valid acc: 0.3777
Iter: 25700, train loss: 1.3845, train acc: 0.6094, valid loss: 2.0187, valid acc: 0.3715
Iter: 25800, train loss: 1.8374, train acc: 0.4219, valid loss: 2.0229, valid acc: 0.3685
Iter: 25900, train loss: 1.7977, train acc: 0.4219, valid loss: 2.0269, valid acc: 0.3700
Iter: 26000, train loss: 1.4063, train acc: 0.5781, valid loss: 2.0079, valid acc: 0.3638
Iter: 26100, train loss: 1.7728, train acc: 0.3750, valid loss: 2.0042, valid acc: 0.3646
Iter: 26200, train loss: 1.6759, train acc: 0.4375, valid loss: 2.0210, valid acc: 0.3654
Iter: 26300, train loss: 1.8593, train acc: 0.3654, valid loss: 2.0164, valid acc: 0.3738
Iter: 26400, train loss: 1.5604, train acc: 0.4844, valid loss: 2.0224, valid acc: 0.3723
Iter: 26500, train loss: 1.7476, train acc: 0.3594, valid loss: 2.0263, valid acc: 0.3762
Iter: 26600, train loss: 1.6459, train acc: 0.4531, valid loss: 2.0271, valid acc: 0.3600
Iter: 26700, train loss: 1.8209, train acc: 0.4062, valid loss: 2.0083, valid acc: 0.3800
Iter: 26800, train loss: 1.8201, train acc: 0.4062, valid loss: 2.0172, valid acc: 0.3754
Iter: 26900, train loss: 1.6519, train acc: 0.3594, valid loss: 2.0251, valid acc: 0.3754
Iter: 27000, train loss: 1.6697, train acc: 0.4531, valid loss: 2.0219, valid acc: 0.3738
Iter: 27100, train loss: 1.9310, train acc: 0.4219, valid loss: 2.0202, valid acc: 0.3700
Iter: 27200, train loss: 1.5895, train acc: 0.4844, valid loss: 2.0364, valid acc: 0.3654
Iter: 27300, train loss: 1.9172, train acc: 0.4219, valid loss: 2.0230, valid acc: 0.3754
Iter: 27400, train loss: 1.5293, train acc: 0.5312, valid loss: 2.0334, valid acc: 0.3708
Iter: 27500, train loss: 1.4943, train acc: 0.5577, valid loss: 2.0330, valid acc: 0.3708
Iter: 27600, train loss: 1.3924, train acc: 0.5781, valid loss: 2.0207, valid acc: 0.3769
Iter: 27700, train loss: 1.6255, train acc: 0.5156, valid loss: 2.0084, valid acc: 0.3762
Iter: 27800, train loss: 1.6126, train acc: 0.4531, valid loss: 2.0194, valid acc: 0.3754
Iter: 27900, train loss: 1.6523, train acc: 0.4219, valid loss: 2.0274, valid acc: 0.3800
Iter: 28000, train loss: 1.9316, train acc: 0.3281, valid loss: 2.0404, valid acc: 0.3685
Iter: 28100, train loss: 1.7737, train acc: 0.4219, valid loss: 2.0158, valid acc: 0.3654
Iter: 28200, train loss: 1.5911, train acc: 0.4844, valid loss: 2.0353, valid acc: 0.3715
Iter: 28300, train loss: 1.7919, train acc: 0.3906, valid loss: 2.0303, valid acc: 0.3662
Iter: 28400, train loss: 1.6420, train acc: 0.4688, valid loss: 2.0372, valid acc: 0.3715
Iter: 28500, train loss: 1.6136, train acc: 0.5000, valid loss: 2.0266, valid acc: 0.3685
Iter: 28600, train loss: 1.9329, train acc: 0.3594, valid loss: 2.0123, valid acc: 0.3762
Iter: 28700, train loss: 2.0278, train acc: 0.3750, valid loss: 2.0299, valid acc: 0.3708
Iter: 28800, train loss: 1.4843, train acc: 0.4844, valid loss: 2.0164, valid acc: 0.3738
Iter: 28900, train loss: 1.5402, train acc: 0.4531, valid loss: 2.0122, valid acc: 0.3754
Iter: 29000, train loss: 1.8958, train acc: 0.3906, valid loss: 2.0133, valid acc: 0.3731
Iter: 29100, train loss: 1.5282, train acc: 0.4844, valid loss: 2.0331, valid acc: 0.3762
Iter: 29200, train loss: 1.3948, train acc: 0.5156, valid loss: 2.0258, valid acc: 0.3692
Iter: 29300, train loss: 1.5225, train acc: 0.5000, valid loss: 2.0281, valid acc: 0.3654
Iter: 29400, train loss: 1.5420, train acc: 0.5156, valid loss: 2.0293, valid acc: 0.3823
Iter: 29500, train loss: 1.6545, train acc: 0.4844, valid loss: 2.0283, valid acc: 0.3731
Iter: 29600, train loss: 1.7402, train acc: 0.4219, valid loss: 2.0433, valid acc: 0.3762
Iter: 29700, train loss: 1.7696, train acc: 0.3281, valid loss: 2.0294, valid acc: 0.3662
Iter: 29800, train loss: 1.6769, train acc: 0.4375, valid loss: 2.0251, valid acc: 0.3685
Iter: 29900, train loss: 1.7894, train acc: 0.4688, valid loss: 2.0269, valid acc: 0.3669
Iter: 30000, train loss: 1.3406, train acc: 0.5156, valid loss: 2.0196, valid acc: 0.3669
Iter: 30100, train loss: 1.6204, train acc: 0.4375, valid loss: 2.0308, valid acc: 0.3638
Iter: 30200, train loss: 1.5877, train acc: 0.5000, valid loss: 2.0412, valid acc: 0.3692
Iter: 30300, train loss: 1.7571, train acc: 0.4219, valid loss: 2.0498, valid acc: 0.3700
Iter: 30400, train loss: 1.4712, train acc: 0.5000, valid loss: 2.0371, valid acc: 0.3654
Iter: 30500, train loss: 1.7424, train acc: 0.3906, valid loss: 2.0341, valid acc: 0.3677
Iter: 30600, train loss: 1.4715, train acc: 0.5000, valid loss: 2.0330, valid acc: 0.3692
Iter: 30700, train loss: 2.1592, train acc: 0.3438, valid loss: 2.0217, valid acc: 0.3723
Iter: 30800, train loss: 1.7862, train acc: 0.4219, valid loss: 2.0446, valid acc: 0.3738
Iter: 30900, train loss: 1.7678, train acc: 0.3594, valid loss: 2.0354, valid acc: 0.3700
Iter: 31000, train loss: 1.7286, train acc: 0.4375, valid loss: 2.0337, valid acc: 0.3669
Iter: 31100, train loss: 1.6032, train acc: 0.4844, valid loss: 2.0196, valid acc: 0.3769
Iter: 31200, train loss: 1.6876, train acc: 0.4531, valid loss: 2.0272, valid acc: 0.3708
Iter: 31300, train loss: 1.3712, train acc: 0.5469, valid loss: 2.0544, valid acc: 0.3615
Iter: 31400, train loss: 1.3552, train acc: 0.5312, valid loss: 2.0369, valid acc: 0.3715
Iter: 31500, train loss: 1.6857, train acc: 0.4219, valid loss: 2.0362, valid acc: 0.3585
Iter: 31600, train loss: 1.7092, train acc: 0.4531, valid loss: 2.0528, valid acc: 0.3662
Iter: 31700, train loss: 1.4455, train acc: 0.5000, valid loss: 2.0263, valid acc: 0.3585
Iter: 31800, train loss: 1.8296, train acc: 0.3906, valid loss: 2.0364, valid acc: 0.3692
Iter: 31900, train loss: 1.8511, train acc: 0.4375, valid loss: 2.0396, valid acc: 0.3762
Iter: 32000, train loss: 1.7707, train acc: 0.3750, valid loss: 2.0492, valid acc: 0.3677
Iter: 32100, train loss: 1.7027, train acc: 0.4531, valid loss: 2.0384, valid acc: 0.3738
Iter: 32200, train loss: 1.9505, train acc: 0.4688, valid loss: 2.0463, valid acc: 0.3677
Iter: 32300, train loss: 1.4077, train acc: 0.4531, valid loss: 2.0456, valid acc: 0.3738
Iter: 32400, train loss: 1.4647, train acc: 0.5469, valid loss: 2.0311, valid acc: 0.3777
Iter: 32500, train loss: 1.6980, train acc: 0.4375, valid loss: 2.0362, valid acc: 0.3738
Iter: 32600, train loss: 1.3799, train acc: 0.5156, valid loss: 2.0382, valid acc: 0.3800
Iter: 32700, train loss: 1.6533, train acc: 0.4531, valid loss: 2.0333, valid acc: 0.3754
Iter: 32800, train loss: 1.4731, train acc: 0.5156, valid loss: 2.0479, valid acc: 0.3738
Iter: 32900, train loss: 1.8878, train acc: 0.3750, valid loss: 2.0456, valid acc: 0.3715
Iter: 33000, train loss: 1.7610, train acc: 0.4062, valid loss: 2.0528, valid acc: 0.3762
Iter: 33100, train loss: 1.8943, train acc: 0.3906, valid loss: 2.0475, valid acc: 0.3746
Iter: 33200, train loss: 1.7730, train acc: 0.4062, valid loss: 2.0433, valid acc: 0.3769
Iter: 33300, train loss: 1.6738, train acc: 0.4375, valid loss: 2.0574, valid acc: 0.3708
Iter: 33400, train loss: 1.4858, train acc: 0.5312, valid loss: 2.0416, valid acc: 0.3715
Iter: 33500, train loss: 1.5405, train acc: 0.4688, valid loss: 2.0445, valid acc: 0.3808
Iter: 33600, train loss: 1.4300, train acc: 0.5000, valid loss: 2.0340, valid acc: 0.3762
Iter: 33700, train loss: 1.8379, train acc: 0.3750, valid loss: 2.0211, valid acc: 0.3723
Iter: 33800, train loss: 1.3932, train acc: 0.5312, valid loss: 2.0556, valid acc: 0.3646
Iter: 33900, train loss: 1.8723, train acc: 0.3906, valid loss: 2.0294, valid acc: 0.3785
Iter: 34000, train loss: 1.3123, train acc: 0.5312, valid loss: 2.0302, valid acc: 0.3731
Iter: 34100, train loss: 1.7463, train acc: 0.3438, valid loss: 2.0341, valid acc: 0.3700
Iter: 34200, train loss: 1.6688, train acc: 0.4688, valid loss: 2.0355, valid acc: 0.3654
Iter: 34300, train loss: 1.5145, train acc: 0.5156, valid loss: 2.0462, valid acc: 0.3662
Iter: 34400, train loss: 1.7058, train acc: 0.4844, valid loss: 2.0367, valid acc: 0.3715
Iter: 34500, train loss: 1.7518, train acc: 0.4531, valid loss: 2.0271, valid acc: 0.3662
Iter: 34600, train loss: 1.6470, train acc: 0.4375, valid loss: 2.0502, valid acc: 0.3669
Iter: 34700, train loss: 1.6502, train acc: 0.4531, valid loss: 2.0155, valid acc: 0.3708
Iter: 34800, train loss: 1.8347, train acc: 0.3125, valid loss: 2.0342, valid acc: 0.3685
Iter: 34900, train loss: 1.4845, train acc: 0.5156, valid loss: 2.0411, valid acc: 0.3738
Iter: 35000, train loss: 1.7896, train acc: 0.3906, valid loss: 2.0378, valid acc: 0.3700
Iter: 35100, train loss: 1.4792, train acc: 0.5156, valid loss: 2.0320, valid acc: 0.3792
Iter: 35200, train loss: 1.5820, train acc: 0.4844, valid loss: 2.0281, valid acc: 0.3808
Iter: 35300, train loss: 1.5945, train acc: 0.5312, valid loss: 2.0206, valid acc: 0.3738
Iter: 35400, train loss: 1.6805, train acc: 0.4219, valid loss: 2.0366, valid acc: 0.3792
Iter: 35500, train loss: 1.6157, train acc: 0.4688, valid loss: 2.0290, valid acc: 0.3769
Iter: 35600, train loss: 1.6905, train acc: 0.4844, valid loss: 2.0496, valid acc: 0.3738
Iter: 35700, train loss: 1.2823, train acc: 0.6094, valid loss: 2.0414, valid acc: 0.3708
Iter: 35800, train loss: 1.4050, train acc: 0.5000, valid loss: 2.0227, valid acc: 0.3762
Iter: 35900, train loss: 1.6544, train acc: 0.4375, valid loss: 2.0296, valid acc: 0.3785
Iter: 36000, train loss: 1.5596, train acc: 0.5000, valid loss: 2.0142, valid acc: 0.3754
Iter: 36100, train loss: 1.7260, train acc: 0.3906, valid loss: 2.0256, valid acc: 0.3738
Iter: 36200, train loss: 1.5626, train acc: 0.4844, valid loss: 2.0369, valid acc: 0.3692
Iter: 36300, train loss: 1.5354, train acc: 0.5000, valid loss: 2.0265, valid acc: 0.3715
Iter: 36400, train loss: 1.7962, train acc: 0.3438, valid loss: 2.0305, valid acc: 0.3677
Iter: 36500, train loss: 1.3903, train acc: 0.4688, valid loss: 2.0328, valid acc: 0.3700
Iter: 36600, train loss: 1.7521, train acc: 0.4219, valid loss: 2.0388, valid acc: 0.3785
Iter: 36700, train loss: 1.4767, train acc: 0.4375, valid loss: 2.0291, valid acc: 0.3838
Iter: 36800, train loss: 1.4801, train acc: 0.5625, valid loss: 2.0166, valid acc: 0.3831
Iter: 36900, train loss: 1.5285, train acc: 0.4688, valid loss: 2.0507, valid acc: 0.3654
Iter: 37000, train loss: 1.6821, train acc: 0.4062, valid loss: 2.0390, valid acc: 0.3785
Iter: 37100, train loss: 1.7442, train acc: 0.5312, valid loss: 2.0413, valid acc: 0.3715
Iter: 37200, train loss: 1.5389, train acc: 0.4844, valid loss: 2.0276, valid acc: 0.3808
Iter: 37300, train loss: 1.7964, train acc: 0.4062, valid loss: 2.0408, valid acc: 0.3685
Iter: 37400, train loss: 1.4724, train acc: 0.5781, valid loss: 2.0482, valid acc: 0.3754
Iter: 37500, train loss: 1.8634, train acc: 0.5000, valid loss: 2.0486, valid acc: 0.3762
Iter: 37600, train loss: 1.7755, train acc: 0.4375, valid loss: 2.0447, valid acc: 0.3800
Iter: 37700, train loss: 1.7068, train acc: 0.4062, valid loss: 2.0220, valid acc: 0.3823
Iter: 37800, train loss: 1.6716, train acc: 0.4688, valid loss: 2.0424, valid acc: 0.3769
Iter: 37900, train loss: 1.5158, train acc: 0.5156, valid loss: 2.0579, valid acc: 0.3623
Iter: 38000, train loss: 1.8484, train acc: 0.3750, valid loss: 2.0436, valid acc: 0.3746
Iter: 38100, train loss: 1.6548, train acc: 0.5000, valid loss: 2.0522, valid acc: 0.3677
Iter: 38200, train loss: 1.5999, train acc: 0.4844, valid loss: 2.0467, valid acc: 0.3700
Iter: 38300, train loss: 1.7338, train acc: 0.4688, valid loss: 2.0414, valid acc: 0.3692
Iter: 38400, train loss: 1.7610, train acc: 0.4219, valid loss: 2.0444, valid acc: 0.3615
Iter: 38500, train loss: 1.6018, train acc: 0.5000, valid loss: 2.0540, valid acc: 0.3638
Iter: 38600, train loss: 1.5989, train acc: 0.5312, valid loss: 2.0257, valid acc: 0.3769
Iter: 38700, train loss: 1.6805, train acc: 0.4531, valid loss: 2.0406, valid acc: 0.3646
Iter: 38800, train loss: 1.6271, train acc: 0.4688, valid loss: 2.0405, valid acc: 0.3762
Iter: 38900, train loss: 1.5065, train acc: 0.5469, valid loss: 2.0471, valid acc: 0.3777
Iter: 39000, train loss: 1.6798, train acc: 0.5000, valid loss: 2.0453, valid acc: 0.3638
Iter: 39100, train loss: 1.5756, train acc: 0.4844, valid loss: 2.0540, valid acc: 0.3615
Iter: 39200, train loss: 1.3925, train acc: 0.5312, valid loss: 2.0539, valid acc: 0.3677
Iter: 39300, train loss: 1.5941, train acc: 0.5312, valid loss: 2.0434, valid acc: 0.3700
Iter: 39400, train loss: 1.5569, train acc: 0.4219, valid loss: 2.0511, valid acc: 0.3723
Iter: 39500, train loss: 1.8041, train acc: 0.4219, valid loss: 2.0588, valid acc: 0.3715
Iter: 39600, train loss: 1.7053, train acc: 0.4375, valid loss: 2.0389, valid acc: 0.3708
Iter: 39700, train loss: 1.7825, train acc: 0.4375, valid loss: 2.0484, valid acc: 0.3769
Iter: 39800, train loss: 1.3035, train acc: 0.5469, valid loss: 2.0589, valid acc: 0.3692
Iter: 39900, train loss: 1.6715, train acc: 0.4375, valid loss: 2.0464, valid acc: 0.3623
Iter: 40000, train loss: 1.5868, train acc: 0.4375, valid loss: 2.0586, valid acc: 0.3638
Iter: 40100, train loss: 1.8486, train acc: 0.3906, valid loss: 2.0528, valid acc: 0.3638
Iter: 40200, train loss: 1.5096, train acc: 0.5625, valid loss: 2.0325, valid acc: 0.3708
Iter: 40300, train loss: 1.5928, train acc: 0.4844, valid loss: 2.0394, valid acc: 0.3631
Iter: 40400, train loss: 1.7045, train acc: 0.4375, valid loss: 2.0524, valid acc: 0.3677
Iter: 40500, train loss: 1.5289, train acc: 0.5000, valid loss: 2.0506, valid acc: 0.3646
Iter: 40600, train loss: 1.6816, train acc: 0.4219, valid loss: 2.0349, valid acc: 0.3708
Iter: 40700, train loss: 1.7191, train acc: 0.4531, valid loss: 2.0287, valid acc: 0.3731
Iter: 40800, train loss: 1.6582, train acc: 0.3906, valid loss: 2.0501, valid acc: 0.3769
Iter: 40900, train loss: 2.0418, train acc: 0.3125, valid loss: 2.0746, valid acc: 0.3700
Iter: 41000, train loss: 1.5500, train acc: 0.4531, valid loss: 2.0506, valid acc: 0.3723
Iter: 41100, train loss: 1.3809, train acc: 0.5000, valid loss: 2.0504, valid acc: 0.3677
Iter: 41200, train loss: 1.7074, train acc: 0.4688, valid loss: 2.0546, valid acc: 0.3638
Iter: 41300, train loss: 1.7465, train acc: 0.4375, valid loss: 2.0524, valid acc: 0.3585
Iter: 41400, train loss: 1.7454, train acc: 0.3750, valid loss: 2.0630, valid acc: 0.3692
Iter: 41500, train loss: 1.7402, train acc: 0.5156, valid loss: 2.0459, valid acc: 0.3585
Iter: 41600, train loss: 1.9997, train acc: 0.3594, valid loss: 2.0656, valid acc: 0.3669
Iter: 41700, train loss: 1.6814, train acc: 0.4062, valid loss: 2.0533, valid acc: 0.3677
Iter: 41800, train loss: 1.8097, train acc: 0.4219, valid loss: 2.0651, valid acc: 0.3677
Iter: 41900, train loss: 1.6059, train acc: 0.4531, valid loss: 2.0520, valid acc: 0.3708
Iter: 42000, train loss: 1.3677, train acc: 0.5781, valid loss: 2.0382, valid acc: 0.3685
Iter: 42100, train loss: 1.7378, train acc: 0.4062, valid loss: 2.0616, valid acc: 0.3685
Iter: 42200, train loss: 1.6790, train acc: 0.4219, valid loss: 2.0642, valid acc: 0.3692
Iter: 42300, train loss: 1.5824, train acc: 0.5469, valid loss: 2.0440, valid acc: 0.3685
Iter: 42400, train loss: 1.6081, train acc: 0.4062, valid loss: 2.0475, valid acc: 0.3738
Iter: 42500, train loss: 1.4981, train acc: 0.5312, valid loss: 2.0573, valid acc: 0.3769
Iter: 42600, train loss: 1.5932, train acc: 0.5469, valid loss: 2.0644, valid acc: 0.3746
Iter: 42700, train loss: 1.6822, train acc: 0.3750, valid loss: 2.0471, valid acc: 0.3746
Iter: 42800, train loss: 1.5626, train acc: 0.4375, valid loss: 2.0521, valid acc: 0.3792
Iter: 42900, train loss: 1.5551, train acc: 0.4375, valid loss: 2.0357, valid acc: 0.3685
Iter: 43000, train loss: 1.7340, train acc: 0.3281, valid loss: 2.0545, valid acc: 0.3685
Iter: 43100, train loss: 1.7877, train acc: 0.3594, valid loss: 2.0715, valid acc: 0.3708
Iter: 43200, train loss: 1.2363, train acc: 0.6154, valid loss: 2.0712, valid acc: 0.3715
Iter: 43300, train loss: 1.7113, train acc: 0.3906, valid loss: 2.0513, valid acc: 0.3838
Iter: 43400, train loss: 1.6619, train acc: 0.4531, valid loss: 2.0514, valid acc: 0.3746
Iter: 43500, train loss: 1.6611, train acc: 0.4531, valid loss: 2.0556, valid acc: 0.3700
Iter: 43600, train loss: 1.6548, train acc: 0.4375, valid loss: 2.0694, valid acc: 0.3631
Iter: 43700, train loss: 1.3715, train acc: 0.4844, valid loss: 2.0511, valid acc: 0.3692
Iter: 43800, train loss: 1.5094, train acc: 0.4688, valid loss: 2.0598, valid acc: 0.3662
Iter: 43900, train loss: 1.6974, train acc: 0.3906, valid loss: 2.0686, valid acc: 0.3685
Iter: 44000, train loss: 1.4410, train acc: 0.5156, valid loss: 2.0616, valid acc: 0.3700
Iter: 44100, train loss: 1.6517, train acc: 0.4531, valid loss: 2.0599, valid acc: 0.3608
Iter: 44200, train loss: 1.4812, train acc: 0.5000, valid loss: 2.0783, valid acc: 0.3662
Iter: 44300, train loss: 1.5475, train acc: 0.5000, valid loss: 2.0708, valid acc: 0.3723
Iter: 44400, train loss: 1.4329, train acc: 0.5156, valid loss: 2.0767, valid acc: 0.3615
Iter: 44500, train loss: 1.6440, train acc: 0.5156, valid loss: 2.0772, valid acc: 0.3577
Iter: 44600, train loss: 1.6643, train acc: 0.4688, valid loss: 2.0709, valid acc: 0.3615
Iter: 44700, train loss: 1.8044, train acc: 0.4531, valid loss: 2.0597, valid acc: 0.3738
Iter: 44800, train loss: 1.5307, train acc: 0.5469, valid loss: 2.0726, valid acc: 0.3677
Iter: 44900, train loss: 1.5688, train acc: 0.4375, valid loss: 2.0574, valid acc: 0.3708
Iter: 45000, train loss: 1.5043, train acc: 0.5156, valid loss: 2.0673, valid acc: 0.3692
Iter: 45100, train loss: 1.6975, train acc: 0.4531, valid loss: 2.0702, valid acc: 0.3762
Iter: 45200, train loss: 1.7453, train acc: 0.3750, valid loss: 2.0656, valid acc: 0.3608
Iter: 45300, train loss: 1.8414, train acc: 0.3125, valid loss: 2.0757, valid acc: 0.3646
Iter: 45400, train loss: 1.6182, train acc: 0.4531, valid loss: 2.0691, valid acc: 0.3615
Iter: 45500, train loss: 1.6287, train acc: 0.4531, valid loss: 2.0922, valid acc: 0.3669
Iter: 45600, train loss: 1.4496, train acc: 0.4688, valid loss: 2.0907, valid acc: 0.3608
Iter: 45700, train loss: 1.3451, train acc: 0.5781, valid loss: 2.0663, valid acc: 0.3700
Iter: 45800, train loss: 1.5854, train acc: 0.4375, valid loss: 2.0524, valid acc: 0.3562
Iter: 45900, train loss: 1.4891, train acc: 0.5781, valid loss: 2.0639, valid acc: 0.3608
Iter: 46000, train loss: 1.6669, train acc: 0.4219, valid loss: 2.0667, valid acc: 0.3631
Iter: 46100, train loss: 1.4768, train acc: 0.5156, valid loss: 2.0695, valid acc: 0.3585
Iter: 46200, train loss: 1.5307, train acc: 0.4531, valid loss: 2.0763, valid acc: 0.3585
Iter: 46300, train loss: 1.6915, train acc: 0.4531, valid loss: 2.0832, valid acc: 0.3638
Iter: 46400, train loss: 1.4956, train acc: 0.4062, valid loss: 2.0742, valid acc: 0.3677
Iter: 46500, train loss: 1.6944, train acc: 0.4375, valid loss: 2.0754, valid acc: 0.3569
Iter: 46600, train loss: 1.9042, train acc: 0.3594, valid loss: 2.0890, valid acc: 0.3592
Iter: 46700, train loss: 1.6465, train acc: 0.4844, valid loss: 2.0995, valid acc: 0.3615
Iter: 46800, train loss: 1.7711, train acc: 0.3594, valid loss: 2.0749, valid acc: 0.3677
Iter: 46900, train loss: 1.8766, train acc: 0.4219, valid loss: 2.0728, valid acc: 0.3700
Iter: 47000, train loss: 1.5832, train acc: 0.5000, valid loss: 2.0686, valid acc: 0.3615
Iter: 47100, train loss: 1.4672, train acc: 0.4688, valid loss: 2.0613, valid acc: 0.3746
Iter: 47200, train loss: 1.7326, train acc: 0.4844, valid loss: 2.0654, valid acc: 0.3615
Iter: 47300, train loss: 1.4359, train acc: 0.5625, valid loss: 2.0649, valid acc: 0.3700
Iter: 47400, train loss: 1.6140, train acc: 0.4688, valid loss: 2.0786, valid acc: 0.3631
Iter: 47500, train loss: 1.6093, train acc: 0.4844, valid loss: 2.0815, valid acc: 0.3600
Iter: 47600, train loss: 1.7837, train acc: 0.4219, valid loss: 2.0855, valid acc: 0.3638
Iter: 47700, train loss: 1.6184, train acc: 0.5000, valid loss: 2.0621, valid acc: 0.3592
Iter: 47800, train loss: 1.4870, train acc: 0.4688, valid loss: 2.0680, valid acc: 0.3662
Iter: 47900, train loss: 1.5389, train acc: 0.6094, valid loss: 2.0773, valid acc: 0.3646
Iter: 48000, train loss: 1.7169, train acc: 0.4844, valid loss: 2.0845, valid acc: 0.3569
Iter: 48100, train loss: 1.5869, train acc: 0.4531, valid loss: 2.0969, valid acc: 0.3662
Iter: 48200, train loss: 1.8728, train acc: 0.4062, valid loss: 2.0926, valid acc: 0.3600
Iter: 48300, train loss: 1.5440, train acc: 0.5312, valid loss: 2.0777, valid acc: 0.3562
Iter: 48400, train loss: 1.6454, train acc: 0.4375, valid loss: 2.0796, valid acc: 0.3669
Iter: 48500, train loss: 1.9442, train acc: 0.3750, valid loss: 2.0934, valid acc: 0.3623
Iter: 48600, train loss: 1.8825, train acc: 0.3750, valid loss: 2.0869, valid acc: 0.3600
Iter: 48700, train loss: 1.6976, train acc: 0.3906, valid loss: 2.0729, valid acc: 0.3631
Iter: 48800, train loss: 1.5119, train acc: 0.4375, valid loss: 2.0880, valid acc: 0.3623
Iter: 48900, train loss: 2.0483, train acc: 0.3594, valid loss: 2.0904, valid acc: 0.3592
Iter: 49000, train loss: 1.5165, train acc: 0.5156, valid loss: 2.0794, valid acc: 0.3562
Iter: 49100, train loss: 1.8045, train acc: 0.4219, valid loss: 2.0886, valid acc: 0.3654
Iter: 49200, train loss: 1.4847, train acc: 0.5469, valid loss: 2.0722, valid acc: 0.3631
Iter: 49300, train loss: 1.7835, train acc: 0.4219, valid loss: 2.0923, valid acc: 0.3685
Iter: 49400, train loss: 1.4968, train acc: 0.4844, valid loss: 2.0856, valid acc: 0.3600
Iter: 49500, train loss: 1.8530, train acc: 0.4688, valid loss: 2.0703, valid acc: 0.3654
Iter: 49600, train loss: 1.6594, train acc: 0.3438, valid loss: 2.0608, valid acc: 0.3623
Iter: 49700, train loss: 1.4874, train acc: 0.4688, valid loss: 2.0900, valid acc: 0.3531
Iter: 49800, train loss: 1.7056, train acc: 0.4375, valid loss: 2.0894, valid acc: 0.3600
Iter: 49900, train loss: 1.6326, train acc: 0.5000, valid loss: 2.0804, valid acc: 0.3646
Iter: 50000, train loss: 1.4443, train acc: 0.5312, valid loss: 2.1045, valid acc: 0.3677
Iter: 50100, train loss: 1.7162, train acc: 0.4219, valid loss: 2.0884, valid acc: 0.3638
Iter: 50200, train loss: 1.5327, train acc: 0.4844, valid loss: 2.0749, valid acc: 0.3615
Iter: 50300, train loss: 1.6383, train acc: 0.5156, valid loss: 2.0941, valid acc: 0.3538
Iter: 50400, train loss: 1.7395, train acc: 0.3906, valid loss: 2.0782, valid acc: 0.3585
Iter: 50500, train loss: 1.6208, train acc: 0.4688, valid loss: 2.0860, valid acc: 0.3592
Iter: 50600, train loss: 1.6609, train acc: 0.4375, valid loss: 2.0810, valid acc: 0.3608
Iter: 50700, train loss: 1.5752, train acc: 0.4688, valid loss: 2.0882, valid acc: 0.3646
Iter: 50800, train loss: 1.5148, train acc: 0.4375, valid loss: 2.0794, valid acc: 0.3623
Iter: 50900, train loss: 1.7463, train acc: 0.4219, valid loss: 2.0867, valid acc: 0.3608
Iter: 51000, train loss: 1.5481, train acc: 0.5312, valid loss: 2.0666, valid acc: 0.3646
Iter: 51100, train loss: 1.4301, train acc: 0.5156, valid loss: 2.0758, valid acc: 0.3669
Iter: 51200, train loss: 1.5324, train acc: 0.5156, valid loss: 2.0694, valid acc: 0.3646
Iter: 51300, train loss: 1.3933, train acc: 0.5781, valid loss: 2.0993, valid acc: 0.3654
Iter: 51400, train loss: 2.0485, train acc: 0.3750, valid loss: 2.1011, valid acc: 0.3654
Iter: 51500, train loss: 1.5774, train acc: 0.5000, valid loss: 2.0890, valid acc: 0.3723
Iter: 51600, train loss: 1.7405, train acc: 0.3438, valid loss: 2.0643, valid acc: 0.3654
Iter: 51700, train loss: 1.5222, train acc: 0.5156, valid loss: 2.0828, valid acc: 0.3785
Iter: 51800, train loss: 1.7422, train acc: 0.4375, valid loss: 2.0976, valid acc: 0.3631
Iter: 51900, train loss: 1.5825, train acc: 0.4531, valid loss: 2.0779, valid acc: 0.3700
Iter: 52000, train loss: 1.4667, train acc: 0.4375, valid loss: 2.0894, valid acc: 0.3654
Iter: 52100, train loss: 1.8388, train acc: 0.4038, valid loss: 2.0784, valid acc: 0.3592
Iter: 52200, train loss: 1.5790, train acc: 0.4531, valid loss: 2.0835, valid acc: 0.3623
Iter: 52300, train loss: 1.7076, train acc: 0.4531, valid loss: 2.0894, valid acc: 0.3638
Iter: 52400, train loss: 1.7059, train acc: 0.4062, valid loss: 2.0677, valid acc: 0.3654
Iter: 52500, train loss: 1.7036, train acc: 0.3750, valid loss: 2.0854, valid acc: 0.3715
Iter: 52600, train loss: 1.8609, train acc: 0.4808, valid loss: 2.0953, valid acc: 0.3615
Iter: 52700, train loss: 1.4671, train acc: 0.5000, valid loss: 2.0792, valid acc: 0.3715
Iter: 52800, train loss: 1.4809, train acc: 0.5312, valid loss: 2.0955, valid acc: 0.3692
Iter: 52900, train loss: 1.6705, train acc: 0.4688, valid loss: 2.0816, valid acc: 0.3669
Iter: 53000, train loss: 1.2851, train acc: 0.6250, valid loss: 2.0925, valid acc: 0.3631
Iter: 53100, train loss: 1.7472, train acc: 0.3906, valid loss: 2.1045, valid acc: 0.3615
Iter: 53200, train loss: 1.3984, train acc: 0.5781, valid loss: 2.0716, valid acc: 0.3654
Iter: 53300, train loss: 1.6071, train acc: 0.4375, valid loss: 2.0760, valid acc: 0.3608
Iter: 53400, train loss: 1.7403, train acc: 0.5000, valid loss: 2.0803, valid acc: 0.3646
Iter: 53500, train loss: 1.6218, train acc: 0.4531, valid loss: 2.0976, valid acc: 0.3646
Iter: 53600, train loss: 1.6605, train acc: 0.4688, valid loss: 2.0850, valid acc: 0.3708
Iter: 53700, train loss: 1.4656, train acc: 0.5156, valid loss: 2.0864, valid acc: 0.3731
Iter: 53800, train loss: 1.5308, train acc: 0.4375, valid loss: 2.0792, valid acc: 0.3692
Iter: 53900, train loss: 1.5941, train acc: 0.4062, valid loss: 2.0890, valid acc: 0.3685
Iter: 54000, train loss: 1.6860, train acc: 0.3906, valid loss: 2.0753, valid acc: 0.3669
Iter: 54100, train loss: 1.6549, train acc: 0.4688, valid loss: 2.0975, valid acc: 0.3623
Iter: 54200, train loss: 1.6114, train acc: 0.5000, valid loss: 2.1023, valid acc: 0.3654
Iter: 54300, train loss: 1.7439, train acc: 0.3750, valid loss: 2.1089, valid acc: 0.3654
Iter: 54400, train loss: 1.5405, train acc: 0.5000, valid loss: 2.0921, valid acc: 0.3731
Iter: 54500, train loss: 1.6160, train acc: 0.3750, valid loss: 2.0982, valid acc: 0.3623
Iter: 54600, train loss: 1.5544, train acc: 0.4688, valid loss: 2.0872, valid acc: 0.3638
Iter: 54700, train loss: 1.4668, train acc: 0.4844, valid loss: 2.0773, valid acc: 0.3731
Iter: 54800, train loss: 1.6626, train acc: 0.5000, valid loss: 2.0879, valid acc: 0.3631
Iter: 54900, train loss: 1.5236, train acc: 0.5000, valid loss: 2.0839, valid acc: 0.3654
Iter: 55000, train loss: 2.0347, train acc: 0.4038, valid loss: 2.0813, valid acc: 0.3646
Iter: 55100, train loss: 1.7288, train acc: 0.4062, valid loss: 2.0922, valid acc: 0.3669
Iter: 55200, train loss: 1.7556, train acc: 0.4062, valid loss: 2.0794, valid acc: 0.3685
Iter: 55300, train loss: 1.5564, train acc: 0.5156, valid loss: 2.0815, valid acc: 0.3692
Iter: 55400, train loss: 1.5619, train acc: 0.5000, valid loss: 2.0853, valid acc: 0.3623
Iter: 55500, train loss: 1.4395, train acc: 0.5000, valid loss: 2.0958, valid acc: 0.3592
Iter: 55600, train loss: 1.3922, train acc: 0.5312, valid loss: 2.0870, valid acc: 0.3708
Iter: 55700, train loss: 1.5410, train acc: 0.4688, valid loss: 2.0813, valid acc: 0.3708
Iter: 55800, train loss: 1.7448, train acc: 0.3906, valid loss: 2.1101, valid acc: 0.3592
Iter: 55900, train loss: 1.8070, train acc: 0.3906, valid loss: 2.0905, valid acc: 0.3646
Iter: 56000, train loss: 1.4626, train acc: 0.5312, valid loss: 2.1040, valid acc: 0.3585
Iter: 56100, train loss: 1.5152, train acc: 0.4844, valid loss: 2.0922, valid acc: 0.3677
Iter: 56200, train loss: 1.5880, train acc: 0.4688, valid loss: 2.0877, valid acc: 0.3669
Iter: 56300, train loss: 1.4628, train acc: 0.5000, valid loss: 2.0948, valid acc: 0.3569
Iter: 56400, train loss: 1.5535, train acc: 0.4219, valid loss: 2.1086, valid acc: 0.3646
Iter: 56500, train loss: 1.4880, train acc: 0.4844, valid loss: 2.0856, valid acc: 0.3608
Iter: 56600, train loss: 1.7636, train acc: 0.3750, valid loss: 2.1188, valid acc: 0.3646
Iter: 56700, train loss: 1.5131, train acc: 0.5469, valid loss: 2.1027, valid acc: 0.3592
Iter: 56800, train loss: 1.6822, train acc: 0.4219, valid loss: 2.0888, valid acc: 0.3677
Iter: 56900, train loss: 1.5121, train acc: 0.5000, valid loss: 2.0944, valid acc: 0.3631
Iter: 57000, train loss: 1.4840, train acc: 0.5000, valid loss: 2.0924, valid acc: 0.3685
Iter: 57100, train loss: 1.8135, train acc: 0.4062, valid loss: 2.0873, valid acc: 0.3692
Iter: 57200, train loss: 1.6009, train acc: 0.4688, valid loss: 2.0882, valid acc: 0.3700
Iter: 57300, train loss: 1.9628, train acc: 0.4219, valid loss: 2.1131, valid acc: 0.3554
Iter: 57400, train loss: 1.6324, train acc: 0.5156, valid loss: 2.1023, valid acc: 0.3615
Iter: 57500, train loss: 1.6409, train acc: 0.5469, valid loss: 2.0890, valid acc: 0.3608
Iter: 57600, train loss: 1.7954, train acc: 0.5156, valid loss: 2.0934, valid acc: 0.3569
Iter: 57700, train loss: 1.6761, train acc: 0.4531, valid loss: 2.1073, valid acc: 0.3677
Iter: 57800, train loss: 1.5944, train acc: 0.4219, valid loss: 2.1020, valid acc: 0.3677
Iter: 57900, train loss: 1.5090, train acc: 0.5156, valid loss: 2.1054, valid acc: 0.3600
Iter: 58000, train loss: 1.6920, train acc: 0.4062, valid loss: 2.0999, valid acc: 0.3677
Iter: 58100, train loss: 1.5147, train acc: 0.4844, valid loss: 2.1034, valid acc: 0.3608
Iter: 58200, train loss: 1.7011, train acc: 0.4375, valid loss: 2.0946, valid acc: 0.3608
Iter: 58300, train loss: 1.7955, train acc: 0.4531, valid loss: 2.0886, valid acc: 0.3677
Iter: 58400, train loss: 1.6864, train acc: 0.4375, valid loss: 2.0878, valid acc: 0.3623
Iter: 58500, train loss: 1.7384, train acc: 0.4219, valid loss: 2.0878, valid acc: 0.3754
Iter: 58600, train loss: 1.5855, train acc: 0.3750, valid loss: 2.0876, valid acc: 0.3631
Iter: 58700, train loss: 1.4641, train acc: 0.5469, valid loss: 2.1068, valid acc: 0.3592
Iter: 58800, train loss: 1.7805, train acc: 0.4844, valid loss: 2.0935, valid acc: 0.3562
Iter: 58900, train loss: 1.4666, train acc: 0.4219, valid loss: 2.0901, valid acc: 0.3577
Iter: 59000, train loss: 1.4874, train acc: 0.4531, valid loss: 2.0954, valid acc: 0.3638
Iter: 59100, train loss: 1.5193, train acc: 0.5625, valid loss: 2.0800, valid acc: 0.3631
Iter: 59200, train loss: 1.4119, train acc: 0.5469, valid loss: 2.1024, valid acc: 0.3646
Iter: 59300, train loss: 1.7128, train acc: 0.4844, valid loss: 2.0986, valid acc: 0.3600
Iter: 59400, train loss: 1.8259, train acc: 0.4219, valid loss: 2.0792, valid acc: 0.3638
Iter: 59500, train loss: 1.4868, train acc: 0.5000, valid loss: 2.1096, valid acc: 0.3662
Iter: 59600, train loss: 1.5247, train acc: 0.5469, valid loss: 2.1014, valid acc: 0.3600
Iter: 59700, train loss: 1.8677, train acc: 0.4062, valid loss: 2.1177, valid acc: 0.3631
Iter: 59800, train loss: 1.5553, train acc: 0.5312, valid loss: 2.1080, valid acc: 0.3662
Iter: 59900, train loss: 1.4951, train acc: 0.4844, valid loss: 2.1017, valid acc: 0.3608
Iter: 60000, train loss: 1.7994, train acc: 0.4688, valid loss: 2.1043, valid acc: 0.3669
Iter: 60100, train loss: 1.6552, train acc: 0.5000, valid loss: 2.0931, valid acc: 0.3554
Iter: 60200, train loss: 1.3479, train acc: 0.5781, valid loss: 2.0933, valid acc: 0.3623
Iter: 60300, train loss: 1.7374, train acc: 0.4219, valid loss: 2.1120, valid acc: 0.3592
Iter: 60400, train loss: 1.6522, train acc: 0.4062, valid loss: 2.1066, valid acc: 0.3592
Iter: 60500, train loss: 1.5059, train acc: 0.4688, valid loss: 2.1078, valid acc: 0.3508
Iter: 60600, train loss: 1.5166, train acc: 0.4844, valid loss: 2.1120, valid acc: 0.3646
Iter: 60700, train loss: 1.3172, train acc: 0.5000, valid loss: 2.1024, valid acc: 0.3638
Iter: 60800, train loss: 1.6036, train acc: 0.5000, valid loss: 2.1192, valid acc: 0.3631
Iter: 60900, train loss: 1.5542, train acc: 0.5156, valid loss: 2.0984, valid acc: 0.3638
Iter: 61000, train loss: 1.5062, train acc: 0.5000, valid loss: 2.1130, valid acc: 0.3638
Iter: 61100, train loss: 1.7578, train acc: 0.4219, valid loss: 2.1093, valid acc: 0.3608
Iter: 61200, train loss: 1.5324, train acc: 0.5000, valid loss: 2.1048, valid acc: 0.3654
Iter: 61300, train loss: 1.8090, train acc: 0.3438, valid loss: 2.1106, valid acc: 0.3608
Iter: 61400, train loss: 1.5723, train acc: 0.4062, valid loss: 2.1026, valid acc: 0.3577
Iter: 61500, train loss: 1.5979, train acc: 0.4531, valid loss: 2.1140, valid acc: 0.3592
Iter: 61600, train loss: 1.6335, train acc: 0.4844, valid loss: 2.1251, valid acc: 0.3600
Iter: 61700, train loss: 1.6162, train acc: 0.4844, valid loss: 2.0853, valid acc: 0.3677
Iter: 61800, train loss: 1.5890, train acc: 0.3906, valid loss: 2.1128, valid acc: 0.3685
Iter: 61900, train loss: 1.3057, train acc: 0.5781, valid loss: 2.1053, valid acc: 0.3577
Iter: 62000, train loss: 1.7288, train acc: 0.3750, valid loss: 2.1018, valid acc: 0.3600
Iter: 62100, train loss: 1.3899, train acc: 0.5312, valid loss: 2.1163, valid acc: 0.3654
Iter: 62200, train loss: 1.3197, train acc: 0.5781, valid loss: 2.1153, valid acc: 0.3600
Iter: 62300, train loss: 1.4947, train acc: 0.5156, valid loss: 2.1012, valid acc: 0.3608
Iter: 62400, train loss: 1.6839, train acc: 0.4688, valid loss: 2.0955, valid acc: 0.3515
Iter: 62500, train loss: 1.4249, train acc: 0.4844, valid loss: 2.1078, valid acc: 0.3615
Iter: 62600, train loss: 1.3377, train acc: 0.5469, valid loss: 2.0961, valid acc: 0.3615
Iter: 62700, train loss: 1.9950, train acc: 0.3281, valid loss: 2.1213, valid acc: 0.3492
Iter: 62800, train loss: 1.6391, train acc: 0.4688, valid loss: 2.1165, valid acc: 0.3554
Iter: 62900, train loss: 1.7033, train acc: 0.5000, valid loss: 2.1225, valid acc: 0.3585
Iter: 63000, train loss: 1.4863, train acc: 0.4531, valid loss: 2.1065, valid acc: 0.3592
Iter: 63100, train loss: 1.8124, train acc: 0.4062, valid loss: 2.1054, valid acc: 0.3515
Iter: 63200, train loss: 1.6085, train acc: 0.4688, valid loss: 2.1109, valid acc: 0.3554
Iter: 63300, train loss: 1.8117, train acc: 0.3750, valid loss: 2.1102, valid acc: 0.3654
Iter: 63400, train loss: 1.2679, train acc: 0.5938, valid loss: 2.1153, valid acc: 0.3615
Iter: 63500, train loss: 1.7390, train acc: 0.4375, valid loss: 2.1101, valid acc: 0.3554
Iter: 63600, train loss: 1.3857, train acc: 0.5781, valid loss: 2.0884, valid acc: 0.3654
Iter: 63700, train loss: 1.3743, train acc: 0.5781, valid loss: 2.1025, valid acc: 0.3631
Iter: 63800, train loss: 1.4927, train acc: 0.4844, valid loss: 2.1110, valid acc: 0.3608
Iter: 63900, train loss: 1.2957, train acc: 0.5469, valid loss: 2.1184, valid acc: 0.3638
Iter: 64000, train loss: 1.7589, train acc: 0.3438, valid loss: 2.1161, valid acc: 0.3585
Iter: 64100, train loss: 1.6624, train acc: 0.5000, valid loss: 2.1015, valid acc: 0.3523
Iter: 64200, train loss: 1.3882, train acc: 0.5469, valid loss: 2.1098, valid acc: 0.3554
Iter: 64300, train loss: 1.6133, train acc: 0.4844, valid loss: 2.1101, valid acc: 0.3546
Iter: 64400, train loss: 1.5480, train acc: 0.4531, valid loss: 2.1259, valid acc: 0.3615
Iter: 64500, train loss: 1.4248, train acc: 0.4688, valid loss: 2.1076, valid acc: 0.3608
Iter: 64600, train loss: 1.5064, train acc: 0.4844, valid loss: 2.1057, valid acc: 0.3623
Iter: 64700, train loss: 1.6529, train acc: 0.4219, valid loss: 2.1173, valid acc: 0.3531
Iter: 64800, train loss: 1.4945, train acc: 0.4531, valid loss: 2.1103, valid acc: 0.3569
Iter: 64900, train loss: 1.6431, train acc: 0.5000, valid loss: 2.1177, valid acc: 0.3562
Iter: 65000, train loss: 1.3383, train acc: 0.4844, valid loss: 2.1051, valid acc: 0.3623
Iter: 65100, train loss: 1.4374, train acc: 0.5469, valid loss: 2.1226, valid acc: 0.3723
Iter: 65200, train loss: 1.6495, train acc: 0.4531, valid loss: 2.1232, valid acc: 0.3646
Iter: 65300, train loss: 1.5011, train acc: 0.4688, valid loss: 2.1232, valid acc: 0.3531
Iter: 65400, train loss: 1.5925, train acc: 0.4062, valid loss: 2.1230, valid acc: 0.3562
Iter: 65500, train loss: 1.5991, train acc: 0.4375, valid loss: 2.1145, valid acc: 0.3515
Iter: 65600, train loss: 1.5215, train acc: 0.4844, valid loss: 2.1086, valid acc: 0.3646
Iter: 65700, train loss: 1.3797, train acc: 0.5156, valid loss: 2.1149, valid acc: 0.3600
Iter: 65800, train loss: 1.6419, train acc: 0.4375, valid loss: 2.1255, valid acc: 0.3592
Iter: 65900, train loss: 1.2783, train acc: 0.6094, valid loss: 2.1227, valid acc: 0.3600
Iter: 66000, train loss: 1.5824, train acc: 0.4844, valid loss: 2.1136, valid acc: 0.3531
Iter: 66100, train loss: 1.3658, train acc: 0.5469, valid loss: 2.1203, valid acc: 0.3554
Iter: 66200, train loss: 1.5280, train acc: 0.5469, valid loss: 2.1044, valid acc: 0.3638
Iter: 66300, train loss: 1.5849, train acc: 0.4375, valid loss: 2.1161, valid acc: 0.3738
Iter: 66400, train loss: 1.6829, train acc: 0.4688, valid loss: 2.1193, valid acc: 0.3631
Iter: 66500, train loss: 1.6941, train acc: 0.4062, valid loss: 2.1054, valid acc: 0.3554
Iter: 66600, train loss: 1.8682, train acc: 0.3906, valid loss: 2.1090, valid acc: 0.3638
Iter: 66700, train loss: 1.4879, train acc: 0.4062, valid loss: 2.1013, valid acc: 0.3500
Iter: 66800, train loss: 1.5152, train acc: 0.4219, valid loss: 2.1106, valid acc: 0.3515
Iter: 66900, train loss: 1.7580, train acc: 0.4062, valid loss: 2.1129, valid acc: 0.3562
Iter: 67000, train loss: 1.6877, train acc: 0.4375, valid loss: 2.1202, valid acc: 0.3546
Iter: 67100, train loss: 1.7232, train acc: 0.4531, valid loss: 2.1081, valid acc: 0.3646
Iter: 67200, train loss: 1.6297, train acc: 0.5156, valid loss: 2.1073, valid acc: 0.3538
Iter: 67300, train loss: 1.6574, train acc: 0.4531, valid loss: 2.1145, valid acc: 0.3554
Iter: 67400, train loss: 1.5258, train acc: 0.5000, valid loss: 2.0926, valid acc: 0.3562
Iter: 67500, train loss: 1.3643, train acc: 0.5156, valid loss: 2.1124, valid acc: 0.3662
Iter: 67600, train loss: 1.6765, train acc: 0.4531, valid loss: 2.0977, valid acc: 0.3631
Iter: 67700, train loss: 1.6891, train acc: 0.4688, valid loss: 2.1064, valid acc: 0.3585
Iter: 67800, train loss: 1.7174, train acc: 0.4688, valid loss: 2.1173, valid acc: 0.3569
Iter: 67900, train loss: 1.4946, train acc: 0.4375, valid loss: 2.1152, valid acc: 0.3623
Iter: 68000, train loss: 1.6349, train acc: 0.4844, valid loss: 2.1240, valid acc: 0.3546
Iter: 68100, train loss: 1.8003, train acc: 0.4219, valid loss: 2.1260, valid acc: 0.3585
Iter: 68200, train loss: 1.5869, train acc: 0.3906, valid loss: 2.1083, valid acc: 0.3654
Iter: 68300, train loss: 1.5885, train acc: 0.4844, valid loss: 2.1268, valid acc: 0.3638
Iter: 68400, train loss: 1.5458, train acc: 0.4844, valid loss: 2.1086, valid acc: 0.3654
Iter: 68500, train loss: 1.2544, train acc: 0.6094, valid loss: 2.1024, valid acc: 0.3638
Iter: 68600, train loss: 1.6517, train acc: 0.4062, valid loss: 2.1186, valid acc: 0.3569
Iter: 68700, train loss: 1.5104, train acc: 0.5000, valid loss: 2.1266, valid acc: 0.3546
Iter: 68800, train loss: 1.6047, train acc: 0.4062, valid loss: 2.1196, valid acc: 0.3654
Iter: 68900, train loss: 1.5009, train acc: 0.5156, valid loss: 2.1192, valid acc: 0.3562
Iter: 69000, train loss: 1.5312, train acc: 0.4375, valid loss: 2.1180, valid acc: 0.3669
Iter: 69100, train loss: 1.9038, train acc: 0.3654, valid loss: 2.1251, valid acc: 0.3654
Iter: 69200, train loss: 1.7196, train acc: 0.4844, valid loss: 2.1184, valid acc: 0.3646
Iter: 69300, train loss: 1.4038, train acc: 0.5312, valid loss: 2.1324, valid acc: 0.3515
Iter: 69400, train loss: 1.3646, train acc: 0.5312, valid loss: 2.1097, valid acc: 0.3569
Iter: 69500, train loss: 1.5072, train acc: 0.4375, valid loss: 2.1165, valid acc: 0.3508
Iter: 69600, train loss: 1.4281, train acc: 0.5156, valid loss: 2.1153, valid acc: 0.3562
Iter: 69700, train loss: 1.5271, train acc: 0.4688, valid loss: 2.1200, valid acc: 0.3592
Iter: 69800, train loss: 1.4453, train acc: 0.4688, valid loss: 2.1056, valid acc: 0.3615
Iter: 69900, train loss: 1.5490, train acc: 0.4844, valid loss: 2.1594, valid acc: 0.3615
Iter: 70000, train loss: 1.4521, train acc: 0.5938, valid loss: 2.1402, valid acc: 0.3569
Iter: 70100, train loss: 1.4855, train acc: 0.5000, valid loss: 2.1125, valid acc: 0.3585
Iter: 70200, train loss: 1.5058, train acc: 0.5469, valid loss: 2.1067, valid acc: 0.3592
Iter: 70300, train loss: 1.2663, train acc: 0.5625, valid loss: 2.1072, valid acc: 0.3654
Iter: 70400, train loss: 1.8931, train acc: 0.3906, valid loss: 2.1020, valid acc: 0.3662
Iter: 70500, train loss: 1.7720, train acc: 0.4688, valid loss: 2.1019, valid acc: 0.3677
Iter: 70600, train loss: 1.4896, train acc: 0.5000, valid loss: 2.1248, valid acc: 0.3546
Iter: 70700, train loss: 1.8678, train acc: 0.3281, valid loss: 2.1090, valid acc: 0.3669
Iter: 70800, train loss: 1.7811, train acc: 0.3125, valid loss: 2.1239, valid acc: 0.3669
Iter: 70900, train loss: 1.3003, train acc: 0.5469, valid loss: 2.1293, valid acc: 0.3538
Iter: 71000, train loss: 1.8127, train acc: 0.4375, valid loss: 2.1412, valid acc: 0.3500
Iter: 71100, train loss: 1.5300, train acc: 0.5000, valid loss: 2.1236, valid acc: 0.3546
Iter: 71200, train loss: 1.4832, train acc: 0.4531, valid loss: 2.1134, valid acc: 0.3562
Iter: 71300, train loss: 1.2312, train acc: 0.6406, valid loss: 2.1192, valid acc: 0.3646
Iter: 71400, train loss: 1.4710, train acc: 0.4844, valid loss: 2.1270, valid acc: 0.3577
Iter: 71500, train loss: 1.7392, train acc: 0.4219, valid loss: 2.1238, valid acc: 0.3646
Iter: 71600, train loss: 1.5688, train acc: 0.4688, valid loss: 2.1245, valid acc: 0.3662
Iter: 71700, train loss: 1.5534, train acc: 0.5156, valid loss: 2.1221, valid acc: 0.3685
Iter: 71800, train loss: 1.6038, train acc: 0.3906, valid loss: 2.1388, valid acc: 0.3615
Iter: 71900, train loss: 1.6934, train acc: 0.3906, valid loss: 2.1167, valid acc: 0.3654
Iter: 72000, train loss: 1.4890, train acc: 0.5156, valid loss: 2.1247, valid acc: 0.3700
Iter: 72100, train loss: 1.5641, train acc: 0.4688, valid loss: 2.1272, valid acc: 0.3592
Iter: 72200, train loss: 1.4189, train acc: 0.5156, valid loss: 2.1138, valid acc: 0.3600
Iter: 72300, train loss: 1.9620, train acc: 0.3906, valid loss: 2.1167, valid acc: 0.3585
Iter: 72400, train loss: 1.4874, train acc: 0.5312, valid loss: 2.1284, valid acc: 0.3562
Iter: 72500, train loss: 1.8463, train acc: 0.3906, valid loss: 2.1366, valid acc: 0.3631
Iter: 72600, train loss: 1.5165, train acc: 0.4844, valid loss: 2.1011, valid acc: 0.3608
Iter: 72700, train loss: 1.6254, train acc: 0.5312, valid loss: 2.1261, valid acc: 0.3523
Iter: 72800, train loss: 1.5560, train acc: 0.4844, valid loss: 2.1371, valid acc: 0.3523
Iter: 72900, train loss: 1.6086, train acc: 0.5000, valid loss: 2.1156, valid acc: 0.3654
Iter: 73000, train loss: 1.5137, train acc: 0.5156, valid loss: 2.1209, valid acc: 0.3685
Iter: 73100, train loss: 1.9102, train acc: 0.3438, valid loss: 2.1271, valid acc: 0.3685
Iter: 73200, train loss: 1.7862, train acc: 0.3438, valid loss: 2.1068, valid acc: 0.3677
Iter: 73300, train loss: 1.5235, train acc: 0.4844, valid loss: 2.1165, valid acc: 0.3654
Iter: 73400, train loss: 1.5704, train acc: 0.4531, valid loss: 2.1364, valid acc: 0.3592
Iter: 73500, train loss: 1.6490, train acc: 0.4531, valid loss: 2.1282, valid acc: 0.3646
Iter: 73600, train loss: 1.3649, train acc: 0.5312, valid loss: 2.1248, valid acc: 0.3669
Iter: 73700, train loss: 1.5210, train acc: 0.4062, valid loss: 2.1275, valid acc: 0.3654
Iter: 73800, train loss: 1.5757, train acc: 0.4531, valid loss: 2.1289, valid acc: 0.3592
Iter: 73900, train loss: 1.6849, train acc: 0.5000, valid loss: 2.1196, valid acc: 0.3646
Iter: 74000, train loss: 1.8164, train acc: 0.4062, valid loss: 2.1137, valid acc: 0.3623
Iter: 74100, train loss: 1.3983, train acc: 0.6250, valid loss: 2.1211, valid acc: 0.3677
Iter: 74200, train loss: 1.8826, train acc: 0.4038, valid loss: 2.1335, valid acc: 0.3615
Iter: 74300, train loss: 1.4870, train acc: 0.5469, valid loss: 2.1270, valid acc: 0.3600
Iter: 74400, train loss: 1.4099, train acc: 0.4688, valid loss: 2.1285, valid acc: 0.3623
Iter: 74500, train loss: 1.6641, train acc: 0.4688, valid loss: 2.1407, valid acc: 0.3585
Iter: 74600, train loss: 1.7824, train acc: 0.4219, valid loss: 2.1226, valid acc: 0.3538
Iter: 74700, train loss: 1.4376, train acc: 0.5312, valid loss: 2.1360, valid acc: 0.3600
Iter: 74800, train loss: 1.5448, train acc: 0.4688, valid loss: 2.1344, valid acc: 0.3685
Iter: 74900, train loss: 1.5572, train acc: 0.4844, valid loss: 2.1308, valid acc: 0.3638
Iter: 75000, train loss: 1.5137, train acc: 0.4688, valid loss: 2.1201, valid acc: 0.3692
Iter: 75100, train loss: 1.6495, train acc: 0.4531, valid loss: 2.1193, valid acc: 0.3715
Iter: 75200, train loss: 1.6494, train acc: 0.4219, valid loss: 2.1569, valid acc: 0.3646
Iter: 75300, train loss: 1.3349, train acc: 0.5469, valid loss: 2.1209, valid acc: 0.3646
Iter: 75400, train loss: 1.4904, train acc: 0.4531, valid loss: 2.1275, valid acc: 0.3608
Iter: 75500, train loss: 1.2387, train acc: 0.5312, valid loss: 2.1265, valid acc: 0.3585
Iter: 75600, train loss: 1.5759, train acc: 0.5312, valid loss: 2.1151, valid acc: 0.3608
Iter: 75700, train loss: 1.5983, train acc: 0.4375, valid loss: 2.1281, valid acc: 0.3631
Iter: 75800, train loss: 1.4127, train acc: 0.5000, valid loss: 2.1190, valid acc: 0.3546
Iter: 75900, train loss: 1.3987, train acc: 0.5156, valid loss: 2.1289, valid acc: 0.3615
Iter: 76000, train loss: 1.5295, train acc: 0.4375, valid loss: 2.1278, valid acc: 0.3646
Iter: 76100, train loss: 1.2608, train acc: 0.5938, valid loss: 2.1328, valid acc: 0.3538
Iter: 76200, train loss: 1.4887, train acc: 0.4688, valid loss: 2.1325, valid acc: 0.3646
Iter: 76300, train loss: 1.5449, train acc: 0.4688, valid loss: 2.1181, valid acc: 0.3577
Iter: 76400, train loss: 1.3750, train acc: 0.5312, valid loss: 2.1392, valid acc: 0.3562
Iter: 76500, train loss: 1.4135, train acc: 0.5000, valid loss: 2.1409, valid acc: 0.3631
Iter: 76600, train loss: 1.4906, train acc: 0.4844, valid loss: 2.1482, valid acc: 0.3469
Iter: 76700, train loss: 1.3380, train acc: 0.4844, valid loss: 2.1507, valid acc: 0.3577
Iter: 76800, train loss: 1.7221, train acc: 0.3438, valid loss: 2.1390, valid acc: 0.3669
Iter: 76900, train loss: 1.5313, train acc: 0.5469, valid loss: 2.1146, valid acc: 0.3608
Iter: 77000, train loss: 1.5129, train acc: 0.4531, valid loss: 2.1167, valid acc: 0.3569
Iter: 77100, train loss: 1.4529, train acc: 0.5000, valid loss: 2.1334, valid acc: 0.3600
Iter: 77200, train loss: 1.3584, train acc: 0.5312, valid loss: 2.1352, valid acc: 0.3569
Iter: 77300, train loss: 1.6165, train acc: 0.4531, valid loss: 2.1461, valid acc: 0.3585
Iter: 77400, train loss: 1.5887, train acc: 0.4844, valid loss: 2.1287, valid acc: 0.3662
Iter: 77500, train loss: 1.2969, train acc: 0.5938, valid loss: 2.1471, valid acc: 0.3554
Iter: 77600, train loss: 1.5808, train acc: 0.4375, valid loss: 2.1359, valid acc: 0.3523
Iter: 77700, train loss: 1.7554, train acc: 0.4844, valid loss: 2.1424, valid acc: 0.3585
Iter: 77800, train loss: 1.7411, train acc: 0.4375, valid loss: 2.1486, valid acc: 0.3538
Iter: 77900, train loss: 1.5092, train acc: 0.4844, valid loss: 2.1443, valid acc: 0.3569
Iter: 78000, train loss: 1.5120, train acc: 0.5156, valid loss: 2.1465, valid acc: 0.3600
Iter: 78100, train loss: 1.7829, train acc: 0.3750, valid loss: 2.1173, valid acc: 0.3638
Iter: 78200, train loss: 1.4626, train acc: 0.5469, valid loss: 2.1344, valid acc: 0.3569
Iter: 78300, train loss: 1.5941, train acc: 0.4688, valid loss: 2.1362, valid acc: 0.3638
Iter: 78400, train loss: 1.5043, train acc: 0.4688, valid loss: 2.1360, valid acc: 0.3569
Iter: 78500, train loss: 1.9172, train acc: 0.3594, valid loss: 2.1344, valid acc: 0.3669
Iter: 78600, train loss: 1.4860, train acc: 0.5156, valid loss: 2.1221, valid acc: 0.3615
Iter: 78700, train loss: 1.6185, train acc: 0.4219, valid loss: 2.1241, valid acc: 0.3646
Iter: 78800, train loss: 1.7219, train acc: 0.4844, valid loss: 2.1360, valid acc: 0.3615
Iter: 78900, train loss: 1.4903, train acc: 0.5156, valid loss: 2.1379, valid acc: 0.3546
Iter: 79000, train loss: 1.7795, train acc: 0.4531, valid loss: 2.1543, valid acc: 0.3554
Iter: 79100, train loss: 1.3380, train acc: 0.5781, valid loss: 2.1406, valid acc: 0.3600
Iter: 79200, train loss: 1.4075, train acc: 0.5625, valid loss: 2.1294, valid acc: 0.3654
Iter: 79300, train loss: 1.6738, train acc: 0.4219, valid loss: 2.1409, valid acc: 0.3623
Iter: 79400, train loss: 1.4953, train acc: 0.5312, valid loss: 2.1295, valid acc: 0.3646
Iter: 79500, train loss: 1.6590, train acc: 0.4219, valid loss: 2.1497, valid acc: 0.3538
Iter: 79600, train loss: 1.5324, train acc: 0.4219, valid loss: 2.1509, valid acc: 0.3638
Iter: 79700, train loss: 1.4013, train acc: 0.5000, valid loss: 2.1385, valid acc: 0.3585
Iter: 79800, train loss: 1.7595, train acc: 0.4062, valid loss: 2.1313, valid acc: 0.3646
Iter: 79900, train loss: 1.5765, train acc: 0.4375, valid loss: 2.1594, valid acc: 0.3585
Iter: 80000, train loss: 1.3688, train acc: 0.5938, valid loss: 2.1581, valid acc: 0.3600
Iter: 80100, train loss: 1.4749, train acc: 0.4688, valid loss: 2.1561, valid acc: 0.3569
Iter: 80200, train loss: 1.5168, train acc: 0.4219, valid loss: 2.1289, valid acc: 0.3592
Iter: 80300, train loss: 1.5521, train acc: 0.4375, valid loss: 2.1618, valid acc: 0.3608
Iter: 80400, train loss: 1.4744, train acc: 0.5781, valid loss: 2.1433, valid acc: 0.3600
Iter: 80500, train loss: 1.6762, train acc: 0.4844, valid loss: 2.1454, valid acc: 0.3531
Iter: 80600, train loss: 1.6880, train acc: 0.5000, valid loss: 2.1505, valid acc: 0.3585
Iter: 80700, train loss: 1.7260, train acc: 0.5156, valid loss: 2.1292, valid acc: 0.3554
Iter: 80800, train loss: 1.4489, train acc: 0.5625, valid loss: 2.1416, valid acc: 0.3592
Iter: 80900, train loss: 1.7007, train acc: 0.4688, valid loss: 2.1413, valid acc: 0.3585
Iter: 81000, train loss: 1.6108, train acc: 0.4219, valid loss: 2.1481, valid acc: 0.3554
Iter: 81100, train loss: 1.5498, train acc: 0.4688, valid loss: 2.1391, valid acc: 0.3669
Iter: 81200, train loss: 1.5007, train acc: 0.4219, valid loss: 2.1496, valid acc: 0.3623
Iter: 81300, train loss: 1.5977, train acc: 0.5000, valid loss: 2.1305, valid acc: 0.3592
Iter: 81400, train loss: 1.1847, train acc: 0.5938, valid loss: 2.1388, valid acc: 0.3631
Iter: 81500, train loss: 1.7706, train acc: 0.4062, valid loss: 2.1448, valid acc: 0.3554
Iter: 81600, train loss: 1.5388, train acc: 0.5312, valid loss: 2.1149, valid acc: 0.3600
Iter: 81700, train loss: 1.5100, train acc: 0.5000, valid loss: 2.1381, valid acc: 0.3608
Iter: 81800, train loss: 1.5865, train acc: 0.5000, valid loss: 2.1431, valid acc: 0.3562
Iter: 81900, train loss: 1.5321, train acc: 0.5000, valid loss: 2.1450, valid acc: 0.3577
Iter: 82000, train loss: 1.7349, train acc: 0.4062, valid loss: 2.1554, valid acc: 0.3585
Iter: 82100, train loss: 1.2534, train acc: 0.5781, valid loss: 2.1467, valid acc: 0.3615
Iter: 82200, train loss: 1.6460, train acc: 0.4688, valid loss: 2.1468, valid acc: 0.3608
Iter: 82300, train loss: 1.4402, train acc: 0.5781, valid loss: 2.1335, valid acc: 0.3585
Iter: 82400, train loss: 1.7334, train acc: 0.4688, valid loss: 2.1351, valid acc: 0.3646
Iter: 82500, train loss: 1.4472, train acc: 0.5156, valid loss: 2.1455, valid acc: 0.3515
Iter: 82600, train loss: 1.6620, train acc: 0.4375, valid loss: 2.1264, valid acc: 0.3615
Iter: 82700, train loss: 1.5383, train acc: 0.4844, valid loss: 2.1296, valid acc: 0.3646
Iter: 82800, train loss: 1.6496, train acc: 0.5000, valid loss: 2.1330, valid acc: 0.3700
Iter: 82900, train loss: 1.5021, train acc: 0.5312, valid loss: 2.1281, valid acc: 0.3638
Iter: 83000, train loss: 1.4160, train acc: 0.5156, valid loss: 2.1414, valid acc: 0.3662
Iter: 83100, train loss: 1.5555, train acc: 0.4688, valid loss: 2.1356, valid acc: 0.3608
Iter: 83200, train loss: 1.4448, train acc: 0.5000, valid loss: 2.1314, valid acc: 0.3638
Iter: 83300, train loss: 1.7113, train acc: 0.4688, valid loss: 2.1406, valid acc: 0.3715
Iter: 83400, train loss: 1.5962, train acc: 0.4531, valid loss: 2.1487, valid acc: 0.3631
Iter: 83500, train loss: 1.2930, train acc: 0.6406, valid loss: 2.1165, valid acc: 0.3708
Iter: 83600, train loss: 1.4032, train acc: 0.5469, valid loss: 2.1513, valid acc: 0.3638
Iter: 83700, train loss: 1.6281, train acc: 0.4375, valid loss: 2.1241, valid acc: 0.3723
Iter: 83800, train loss: 1.3968, train acc: 0.5469, valid loss: 2.1378, valid acc: 0.3662
Iter: 83900, train loss: 1.3333, train acc: 0.6094, valid loss: 2.1425, valid acc: 0.3631
Iter: 84000, train loss: 1.5566, train acc: 0.5625, valid loss: 2.1437, valid acc: 0.3515
Iter: 84100, train loss: 1.5398, train acc: 0.4688, valid loss: 2.1403, valid acc: 0.3585
Iter: 84200, train loss: 1.5111, train acc: 0.5000, valid loss: 2.1432, valid acc: 0.3623
Iter: 84300, train loss: 1.4765, train acc: 0.5000, valid loss: 2.1532, valid acc: 0.3669
Iter: 84400, train loss: 1.6190, train acc: 0.4219, valid loss: 2.1721, valid acc: 0.3608
Iter: 84500, train loss: 1.5515, train acc: 0.5000, valid loss: 2.1549, valid acc: 0.3654
Iter: 84600, train loss: 1.7958, train acc: 0.3906, valid loss: 2.1372, valid acc: 0.3631
Iter: 84700, train loss: 1.2382, train acc: 0.6406, valid loss: 2.1552, valid acc: 0.3662
Iter: 84800, train loss: 1.6220, train acc: 0.4688, valid loss: 2.1399, valid acc: 0.3585
Iter: 84900, train loss: 1.5319, train acc: 0.4375, valid loss: 2.1335, valid acc: 0.3708
Iter: 85000, train loss: 1.6080, train acc: 0.4844, valid loss: 2.1349, valid acc: 0.3654
Iter: 85100, train loss: 1.6516, train acc: 0.4219, valid loss: 2.1375, valid acc: 0.3669
Iter: 85200, train loss: 1.3979, train acc: 0.4844, valid loss: 2.1461, valid acc: 0.3592
Iter: 85300, train loss: 1.6299, train acc: 0.3750, valid loss: 2.1380, valid acc: 0.3615
Iter: 85400, train loss: 1.5604, train acc: 0.4688, valid loss: 2.1449, valid acc: 0.3638
Iter: 85500, train loss: 1.6442, train acc: 0.5000, valid loss: 2.1349, valid acc: 0.3638
Iter: 85600, train loss: 1.5311, train acc: 0.5000, valid loss: 2.1395, valid acc: 0.3638
Iter: 85700, train loss: 1.5515, train acc: 0.3906, valid loss: 2.1272, valid acc: 0.3562
Iter: 85800, train loss: 1.6726, train acc: 0.4219, valid loss: 2.1530, valid acc: 0.3546
Iter: 85900, train loss: 1.4051, train acc: 0.5781, valid loss: 2.1275, valid acc: 0.3608
Iter: 86000, train loss: 1.6351, train acc: 0.4688, valid loss: 2.1323, valid acc: 0.3600
Iter: 86100, train loss: 1.6419, train acc: 0.4062, valid loss: 2.1385, valid acc: 0.3723
Iter: 86200, train loss: 1.4821, train acc: 0.5625, valid loss: 2.1466, valid acc: 0.3538
Iter: 86300, train loss: 1.4233, train acc: 0.5156, valid loss: 2.1146, valid acc: 0.3677
Iter: 86400, train loss: 1.2868, train acc: 0.5938, valid loss: 2.1268, valid acc: 0.3546
Iter: 86500, train loss: 1.6210, train acc: 0.4688, valid loss: 2.1446, valid acc: 0.3454
Iter: 86600, train loss: 1.4839, train acc: 0.5000, valid loss: 2.1451, valid acc: 0.3515
Iter: 86700, train loss: 1.4653, train acc: 0.5469, valid loss: 2.1228, valid acc: 0.3546
Iter: 86800, train loss: 1.5717, train acc: 0.5312, valid loss: 2.1308, valid acc: 0.3569
Iter: 86900, train loss: 1.3659, train acc: 0.5938, valid loss: 2.1627, valid acc: 0.3623
Iter: 87000, train loss: 1.5130, train acc: 0.5000, valid loss: 2.1522, valid acc: 0.3569
Iter: 87100, train loss: 1.6940, train acc: 0.4531, valid loss: 2.1508, valid acc: 0.3569
Iter: 87200, train loss: 1.6071, train acc: 0.5312, valid loss: 2.1558, valid acc: 0.3577
Iter: 87300, train loss: 1.5519, train acc: 0.5156, valid loss: 2.1460, valid acc: 0.3654
Iter: 87400, train loss: 1.5487, train acc: 0.4062, valid loss: 2.1414, valid acc: 0.3600
Iter: 87500, train loss: 1.7958, train acc: 0.4688, valid loss: 2.1543, valid acc: 0.3623
Iter: 87600, train loss: 1.6450, train acc: 0.3906, valid loss: 2.1308, valid acc: 0.3600
Iter: 87700, train loss: 1.6830, train acc: 0.3594, valid loss: 2.1495, valid acc: 0.3577
Iter: 87800, train loss: 1.4360, train acc: 0.4688, valid loss: 2.1615, valid acc: 0.3569
Iter: 87900, train loss: 1.5081, train acc: 0.5000, valid loss: 2.1360, valid acc: 0.3677
Iter: 88000, train loss: 1.5775, train acc: 0.4531, valid loss: 2.1393, valid acc: 0.3623
Iter: 88100, train loss: 1.4796, train acc: 0.5469, valid loss: 2.1301, valid acc: 0.3592
Iter: 88200, train loss: 1.6473, train acc: 0.5156, valid loss: 2.1397, valid acc: 0.3577
Iter: 88300, train loss: 1.3701, train acc: 0.5938, valid loss: 2.1512, valid acc: 0.3569
Iter: 88400, train loss: 1.5455, train acc: 0.5000, valid loss: 2.1240, valid acc: 0.3515
Iter: 88500, train loss: 1.5067, train acc: 0.5156, valid loss: 2.1526, valid acc: 0.3492
Iter: 88600, train loss: 1.4522, train acc: 0.4844, valid loss: 2.1652, valid acc: 0.3585
Iter: 88700, train loss: 1.3446, train acc: 0.5625, valid loss: 2.1649, valid acc: 0.3562
Iter: 88800, train loss: 1.5158, train acc: 0.5000, valid loss: 2.1559, valid acc: 0.3631
Iter: 88900, train loss: 1.7742, train acc: 0.4062, valid loss: 2.1462, valid acc: 0.3631
Iter: 89000, train loss: 1.5977, train acc: 0.4375, valid loss: 2.1446, valid acc: 0.3592
Iter: 89100, train loss: 1.6001, train acc: 0.4531, valid loss: 2.1374, valid acc: 0.3577
Iter: 89200, train loss: 1.7903, train acc: 0.3906, valid loss: 2.1475, valid acc: 0.3577
Iter: 89300, train loss: 1.5428, train acc: 0.4844, valid loss: 2.1414, valid acc: 0.3546
Iter: 89400, train loss: 1.4273, train acc: 0.4844, valid loss: 2.1447, valid acc: 0.3538
Iter: 89500, train loss: 1.5699, train acc: 0.5156, valid loss: 2.1533, valid acc: 0.3600
Iter: 89600, train loss: 1.5172, train acc: 0.4844, valid loss: 2.1426, valid acc: 0.3515
Iter: 89700, train loss: 1.6270, train acc: 0.4219, valid loss: 2.1351, valid acc: 0.3485
Iter: 89800, train loss: 1.4915, train acc: 0.5469, valid loss: 2.1389, valid acc: 0.3615
Iter: 89900, train loss: 1.5509, train acc: 0.4375, valid loss: 2.1387, valid acc: 0.3592
Iter: 90000, train loss: 1.6397, train acc: 0.4062, valid loss: 2.1466, valid acc: 0.3608
Iter: 90100, train loss: 1.5784, train acc: 0.5781, valid loss: 2.1542, valid acc: 0.3477
Iter: 90200, train loss: 1.5770, train acc: 0.4688, valid loss: 2.1428, valid acc: 0.3600
Iter: 90300, train loss: 1.6603, train acc: 0.3750, valid loss: 2.1687, valid acc: 0.3538
Iter: 90400, train loss: 1.6151, train acc: 0.4375, valid loss: 2.1461, valid acc: 0.3585
Iter: 90500, train loss: 1.5271, train acc: 0.4531, valid loss: 2.1638, valid acc: 0.3469
Iter: 90600, train loss: 1.7077, train acc: 0.4688, valid loss: 2.1651, valid acc: 0.3562
Iter: 90700, train loss: 1.6322, train acc: 0.4375, valid loss: 2.1473, valid acc: 0.3485
Iter: 90800, train loss: 1.5965, train acc: 0.4531, valid loss: 2.1534, valid acc: 0.3515
Iter: 90900, train loss: 1.6283, train acc: 0.5000, valid loss: 2.1675, valid acc: 0.3615
Iter: 91000, train loss: 1.6565, train acc: 0.4531, valid loss: 2.1536, valid acc: 0.3662
Iter: 91100, train loss: 1.6769, train acc: 0.4219, valid loss: 2.1470, valid acc: 0.3600
Iter: 91200, train loss: 1.2847, train acc: 0.5469, valid loss: 2.1552, valid acc: 0.3608
Iter: 91300, train loss: 1.6837, train acc: 0.4844, valid loss: 2.1411, valid acc: 0.3523
Iter: 91400, train loss: 1.4566, train acc: 0.5000, valid loss: 2.1621, valid acc: 0.3569
Iter: 91500, train loss: 1.4391, train acc: 0.5625, valid loss: 2.1341, valid acc: 0.3577
Iter: 91600, train loss: 1.6294, train acc: 0.3906, valid loss: 2.1574, valid acc: 0.3600
Iter: 91700, train loss: 1.4565, train acc: 0.5312, valid loss: 2.1421, valid acc: 0.3608
Iter: 91800, train loss: 1.3986, train acc: 0.5312, valid loss: 2.1576, valid acc: 0.3585
Iter: 91900, train loss: 1.5806, train acc: 0.4375, valid loss: 2.1632, valid acc: 0.3646
Iter: 92000, train loss: 1.6227, train acc: 0.4062, valid loss: 2.1483, valid acc: 0.3623
Iter: 92100, train loss: 2.0333, train acc: 0.3594, valid loss: 2.1599, valid acc: 0.3554
Iter: 92200, train loss: 1.8101, train acc: 0.4688, valid loss: 2.1564, valid acc: 0.3608
Iter: 92300, train loss: 1.4741, train acc: 0.4219, valid loss: 2.1393, valid acc: 0.3615
Iter: 92400, train loss: 1.5577, train acc: 0.5625, valid loss: 2.1483, valid acc: 0.3569
Iter: 92500, train loss: 1.9222, train acc: 0.4375, valid loss: 2.1516, valid acc: 0.3531
Iter: 92600, train loss: 1.6006, train acc: 0.4375, valid loss: 2.1393, valid acc: 0.3538
Iter: 92700, train loss: 1.5986, train acc: 0.4219, valid loss: 2.1335, valid acc: 0.3662
Iter: 92800, train loss: 1.3686, train acc: 0.5469, valid loss: 2.1516, valid acc: 0.3669
Iter: 92900, train loss: 1.6092, train acc: 0.4531, valid loss: 2.1601, valid acc: 0.3638
Iter: 93000, train loss: 1.5881, train acc: 0.4219, valid loss: 2.1634, valid acc: 0.3654
Iter: 93100, train loss: 1.4061, train acc: 0.4531, valid loss: 2.1521, valid acc: 0.3685
Iter: 93200, train loss: 1.5589, train acc: 0.4062, valid loss: 2.1316, valid acc: 0.3577
Iter: 93300, train loss: 1.5340, train acc: 0.4844, valid loss: 2.1463, valid acc: 0.3600
Iter: 93400, train loss: 1.5621, train acc: 0.5000, valid loss: 2.1744, valid acc: 0.3646
Iter: 93500, train loss: 1.3845, train acc: 0.6094, valid loss: 2.1523, valid acc: 0.3646
Iter: 93600, train loss: 1.4656, train acc: 0.4531, valid loss: 2.1471, valid acc: 0.3600
Iter: 93700, train loss: 1.4874, train acc: 0.4375, valid loss: 2.1589, valid acc: 0.3662
Iter: 93800, train loss: 1.7517, train acc: 0.3750, valid loss: 2.1548, valid acc: 0.3646
Iter: 93900, train loss: 1.4572, train acc: 0.4688, valid loss: 2.1522, valid acc: 0.3638
Iter: 94000, train loss: 1.7668, train acc: 0.3906, valid loss: 2.1529, valid acc: 0.3654
Iter: 94100, train loss: 1.1170, train acc: 0.6250, valid loss: 2.1669, valid acc: 0.3554
Iter: 94200, train loss: 1.6407, train acc: 0.4531, valid loss: 2.1203, valid acc: 0.3592
Iter: 94300, train loss: 1.7638, train acc: 0.4688, valid loss: 2.1407, valid acc: 0.3615
Iter: 94400, train loss: 1.3339, train acc: 0.5781, valid loss: 2.1471, valid acc: 0.3631
Iter: 94500, train loss: 1.8078, train acc: 0.4375, valid loss: 2.1528, valid acc: 0.3638
Iter: 94600, train loss: 1.3590, train acc: 0.4844, valid loss: 2.1603, valid acc: 0.3631
Iter: 94700, train loss: 1.5980, train acc: 0.4688, valid loss: 2.1554, valid acc: 0.3546
Iter: 94800, train loss: 1.5861, train acc: 0.4375, valid loss: 2.1557, valid acc: 0.3631
Iter: 94900, train loss: 1.6374, train acc: 0.4844, valid loss: 2.1480, valid acc: 0.3608
Iter: 95000, train loss: 1.4807, train acc: 0.5938, valid loss: 2.1453, valid acc: 0.3608
Iter: 95100, train loss: 1.5075, train acc: 0.4844, valid loss: 2.1775, valid acc: 0.3577
Iter: 95200, train loss: 1.5743, train acc: 0.4844, valid loss: 2.1630, valid acc: 0.3562
Iter: 95300, train loss: 1.6182, train acc: 0.4531, valid loss: 2.1643, valid acc: 0.3569
Iter: 95400, train loss: 1.4788, train acc: 0.6094, valid loss: 2.1639, valid acc: 0.3577
Iter: 95500, train loss: 1.9371, train acc: 0.3750, valid loss: 2.1572, valid acc: 0.3631
Iter: 95600, train loss: 1.6762, train acc: 0.4531, valid loss: 2.1364, valid acc: 0.3623
Iter: 95700, train loss: 1.7167, train acc: 0.4375, valid loss: 2.1476, valid acc: 0.3592
Iter: 95800, train loss: 1.8568, train acc: 0.3750, valid loss: 2.1387, valid acc: 0.3638
Iter: 95900, train loss: 1.8968, train acc: 0.3750, valid loss: 2.1461, valid acc: 0.3608
Iter: 96000, train loss: 1.9104, train acc: 0.3438, valid loss: 2.1439, valid acc: 0.3646
Iter: 96100, train loss: 1.4974, train acc: 0.4219, valid loss: 2.1480, valid acc: 0.3608
Iter: 96200, train loss: 1.7508, train acc: 0.4062, valid loss: 2.1490, valid acc: 0.3538
Iter: 96300, train loss: 1.8678, train acc: 0.3750, valid loss: 2.1585, valid acc: 0.3577
Iter: 96400, train loss: 1.6071, train acc: 0.4062, valid loss: 2.1469, valid acc: 0.3600
Iter: 96500, train loss: 1.4760, train acc: 0.4531, valid loss: 2.1524, valid acc: 0.3492
Iter: 96600, train loss: 1.7490, train acc: 0.4062, valid loss: 2.1374, valid acc: 0.3469
Iter: 96700, train loss: 1.3979, train acc: 0.5625, valid loss: 2.1355, valid acc: 0.3554
Iter: 96800, train loss: 1.5771, train acc: 0.5000, valid loss: 2.1623, valid acc: 0.3608
Iter: 96900, train loss: 1.4081, train acc: 0.5156, valid loss: 2.1540, valid acc: 0.3531
Iter: 97000, train loss: 1.4232, train acc: 0.5156, valid loss: 2.1551, valid acc: 0.3646
Iter: 97100, train loss: 1.7635, train acc: 0.5000, valid loss: 2.1650, valid acc: 0.3508
Iter: 97200, train loss: 1.4602, train acc: 0.5781, valid loss: 2.1533, valid acc: 0.3569
Iter: 97300, train loss: 1.9641, train acc: 0.3438, valid loss: 2.1548, valid acc: 0.3554
Iter: 97400, train loss: 1.3384, train acc: 0.5312, valid loss: 2.1705, valid acc: 0.3462
Iter: 97500, train loss: 1.5590, train acc: 0.4531, valid loss: 2.1552, valid acc: 0.3592
Iter: 97600, train loss: 1.7369, train acc: 0.3594, valid loss: 2.1571, valid acc: 0.3615
Iter: 97700, train loss: 1.4970, train acc: 0.4688, valid loss: 2.1787, valid acc: 0.3554
Iter: 97800, train loss: 1.4409, train acc: 0.5000, valid loss: 2.1624, valid acc: 0.3569
Iter: 97900, train loss: 1.5961, train acc: 0.4062, valid loss: 2.1605, valid acc: 0.3585
Iter: 98000, train loss: 1.7346, train acc: 0.4688, valid loss: 2.1616, valid acc: 0.3485
Iter: 98100, train loss: 1.4824, train acc: 0.5156, valid loss: 2.1510, valid acc: 0.3569
Iter: 98200, train loss: 1.6975, train acc: 0.4688, valid loss: 2.1651, valid acc: 0.3562
Iter: 98300, train loss: 1.5661, train acc: 0.5156, valid loss: 2.1581, valid acc: 0.3554
Iter: 98400, train loss: 1.4706, train acc: 0.4531, valid loss: 2.1519, valid acc: 0.3615
Iter: 98500, train loss: 1.5012, train acc: 0.5156, valid loss: 2.1612, valid acc: 0.3554
Iter: 98600, train loss: 1.3757, train acc: 0.5312, valid loss: 2.1948, valid acc: 0.3577
Iter: 98700, train loss: 1.5863, train acc: 0.5312, valid loss: 2.1551, valid acc: 0.3592
Iter: 98800, train loss: 1.6425, train acc: 0.4844, valid loss: 2.1809, valid acc: 0.3562
Iter: 98900, train loss: 1.5541, train acc: 0.4531, valid loss: 2.1761, valid acc: 0.3577
Iter: 99000, train loss: 1.4423, train acc: 0.4375, valid loss: 2.1532, valid acc: 0.3631
Iter: 99100, train loss: 1.6976, train acc: 0.5156, valid loss: 2.1478, valid acc: 0.3554
Iter: 99200, train loss: 1.3043, train acc: 0.5625, valid loss: 2.1617, valid acc: 0.3531
Iter: 99300, train loss: 1.7257, train acc: 0.3906, valid loss: 2.1722, valid acc: 0.3562
Iter: 99400, train loss: 1.3966, train acc: 0.6094, valid loss: 2.1601, valid acc: 0.3508
Iter: 99500, train loss: 1.5638, train acc: 0.4531, valid loss: 2.1669, valid acc: 0.3569
Iter: 99600, train loss: 1.4565, train acc: 0.5000, valid loss: 2.1839, valid acc: 0.3600
Iter: 99700, train loss: 1.6517, train acc: 0.4688, valid loss: 2.1410, valid acc: 0.3631
Iter: 99800, train loss: 1.3897, train acc: 0.4844, valid loss: 2.1398, valid acc: 0.3638
Iter: 99900, train loss: 1.6105, train acc: 0.5000, valid loss: 2.1658, valid acc: 0.3523
Iter: 100000, train loss: 1.7987, train acc: 0.4531, valid loss: 2.1616, valid acc: 0.3638

In [31]:
# # Display the learning curve and losses for training, validation, and testing
# %matplotlib inline
# %config InlineBackend.figure_format = 'retina'
import matplotlib.pyplot as plt

plt.plot(nn.losses['train'], label='Train loss')
plt.plot(nn.losses['valid'], label='Valid loss')
plt.legend()
plt.show()



In [32]:
loss_train = np.array(nn.losses['train'], dtype=float)
loss_valid = np.array(nn.losses['valid'], dtype=float)
loss_train.shape, loss_valid.shape


Out[32]:
((100000,), (100000,))

In [33]:
loss_train_norm = (loss_train - loss_train.mean(axis=0))/ loss_train.std(axis=0)
loss_valid_norm = (loss_valid - loss_valid.mean(axis=0))/ loss_valid.std(axis=0)

In [34]:
plt.plot(loss_train_norm, label='Normalized train loss')
plt.plot(loss_valid_norm, label='Normalized valid loss')
plt.legend()
plt.show()



In [35]:
plt.plot(nn.losses['train_acc'], label='Train accuracy')
plt.plot(nn.losses['valid_acc'], label='Valid accuracy')
plt.legend()
plt.show()



In [36]:
heading = labels_keys_sorted.copy()
heading.insert(0, 'Id')
heading


Out[36]:
['Id',
 'Blues',
 'Country',
 'Electronic',
 'Folk',
 'International',
 'Jazz',
 'Latin',
 'New_Age',
 'Pop_Rock',
 'Rap',
 'Reggae',
 'RnB',
 'Vocal']

In [37]:
y_pred, y_logits = nn.test(X_test)
y_prob = l.softmax(y_logits)
y_prob.shape, X_test.shape, y_logits.shape, test_y_sample.shape, test_y_sample[:1]


Out[37]:
((10400, 13),
 (10400, 26),
 (10400, 13),
 (10400, 14),
    Id   Blues  Country  Electronic    Folk  International    Jazz   Latin  \
 0   1  0.0964   0.0884      0.0121  0.1004         0.0137  0.1214  0.0883   
 
    New_Age  Pop_Rock     Rap  Reggae     RnB   Vocal  
 0   0.0765    0.0332  0.0445  0.1193  0.1019  0.1038  )

In [38]:
pred_list = []
for Id, pred in enumerate(y_prob):
#     print(Id+1, *pred)
    pred_list.append([Id+1, *pred])

In [39]:
pred_file = open(file='prediction.csv', mode='w')
pred_file.write('\n') # because of the previous line        

for idx in range(len(heading)):
    if idx < len(heading) - 1:
        pred_file.write(heading[idx] + ',')
    else:
        pred_file.write(heading[idx] + '\n')        

# len(test), test[0]
# for key in test:
for i in range(len(pred_list)): # rows
    for j in range(len(pred_list[i])): # cols
        if j < (len(pred_list[i]) - 1):
            pred_file.write(str(pred_list[i][j]))
            pred_file.write(',')
        else: # last item before starting a new line
            pred_file.write(str(pred_list[i][j]) + '\n')        

# pred_file.write(-',')
pred_file.close()

In [27]:
pd.read_csv(filepath_or_buffer='prediction.csv').head()


Out[27]:
Id Blues Country Electronic Folk International Jazz Latin New_Age Pop_Rock Rap Reggae RnB Vocal
0 1 0.002392 0.004939 0.068574 0.002917 0.013440 0.024538 0.022177 0.008314 0.002323 0.667497 0.164285 0.016776 0.001828
1 2 0.023286 0.004126 0.004385 0.002610 0.012680 0.000987 0.064853 0.000094 0.000486 0.134632 0.743432 0.005079 0.003351
2 3 0.013049 0.002193 0.018545 0.003268 0.048679 0.003299 0.058787 0.001124 0.025355 0.132043 0.632624 0.060300 0.000734
3 4 0.008601 0.010152 0.007329 0.004134 0.029615 0.001186 0.088148 0.000552 0.006381 0.259878 0.564074 0.014082 0.005868
4 5 0.000309 0.000159 0.003329 0.000027 0.004999 0.000007 0.006768 0.000010 0.001107 0.732700 0.250322 0.000262 0.000001

In [28]:
pd.read_csv(filepath_or_buffer='prediction.csv').shape, test_y_sample.shape


Out[28]:
((10400, 14), (10400, 14))

In [29]:
test_y_sample.head()


Out[29]:
Id Blues Country Electronic Folk International Jazz Latin New_Age Pop_Rock Rap Reggae RnB Vocal
0 1 0.0964 0.0884 0.0121 0.1004 0.0137 0.1214 0.0883 0.0765 0.0332 0.0445 0.1193 0.1019 0.1038
1 2 0.0121 0.0804 0.0376 0.0289 0.1310 0.0684 0.1044 0.0118 0.1562 0.0585 0.1633 0.1400 0.0073
2 3 0.1291 0.0985 0.0691 0.0356 0.0788 0.0529 0.1185 0.1057 0.1041 0.0075 0.0481 0.1283 0.0238
3 4 0.0453 0.1234 0.0931 0.0126 0.1224 0.0627 0.0269 0.0764 0.0812 0.1337 0.0357 0.0937 0.0930
4 5 0.0600 0.0915 0.0667 0.0947 0.0509 0.0335 0.1251 0.0202 0.1012 0.0365 0.1310 0.0898 0.0991

In [ ]:


In [ ]: