In [1]:
import tensorflow as tf
import os
import numpy as np
import csv
import string
import requests
import io
from zipfile import ZipFile
from tensorflow.contrib import learn

%matplotlib inline
import matplotlib.pyplot as plt

In [2]:
sess = tf.Session()

In [3]:
save_file_name = os.path.join('temp', 'temp_spam_data.csv')

if not os.path.exists('temp'):
    os.makedirs('temp')
    
if os.path.isfile(save_file_name):
    text_data = []
    with open(save_file_name, 'r') as temp_output_file:
        reader = csv.reader(temp_output_file)
        for row in reader:
            text_data.append(row)
else:
    zip_url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/' \
              '00228/smsspamcollection.zip'
    r = requests.get(zip_url)
    z = ZipFile(io.BytesIO(r.content))
    file = z.read('SMSSpamCollection')
    
    text_data = file.decode()
    text_data = text_data.encode('ascii', errors='ignore')
    text_data = text_data.decode().split('\n')
    text_data = [x.split('\t') for x in text_data if len(x) >= 1]
    
    with open(save_file_name, 'w') as temp_output_file:
        writer = csv.writer(temp_output_file)
        writer.writerows(text_data)
        
texts = [x[1] for x in text_data]
targets = [x[0] for x in text_data]

In [4]:
text_data[:2]


Out[4]:
[['ham',
  'Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...'],
 ['ham', 'Ok lar... Joking wif u oni...']]

In [5]:
texts[:2]


Out[5]:
['Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...',
 'Ok lar... Joking wif u oni...']

In [6]:
targets[:2]


Out[6]:
['ham', 'ham']

In [7]:
# change spam's label to 1, ham's label to 0
target = [1 if x == 'spam' else 0 for x in targets]

In [8]:
target[:2]


Out[8]:
[0, 0]

In [9]:
# normalize text
texts = [x.lower() for x in texts]
texts = [''.join(c for c in x if c not in string.punctuation) for x in texts]
texts = [''.join(c for c in x if c not in '0123456789') for x in texts]
texts = [' '.join(x.split()) for x in texts]

In [10]:
texts[:2]


Out[10]:
['go until jurong point crazy available only in bugis n great world la e buffet cine there got amore wat',
 'ok lar joking wif u oni']

In [11]:
text_lengths = [len(x.split()) for x in texts]
text_lengths = [x for x in text_lengths if x < 50]

plt.hist(text_lengths, bins=25)
plt.title('Histogram of # of Words in Texts')
plt.show


Out[11]:
<function matplotlib.pyplot.show>

In [12]:
sentence_size = 40
min_word_freq = 3

In [13]:
vocab_processor = learn.preprocessing.VocabularyProcessor(
    sentence_size, min_frequency=min_word_freq)

vocab_processor.fit_transform(texts)
embedding_size = len(vocab_processor.vocabulary_)

In [14]:
embedding_size


Out[14]:
2108

In [15]:
train_indices = np.random.choice(len(texts), round(len(texts)*0.8), replace=False)
test_indices = np.array(list(set(range(len(texts))) - set(train_indices)))

texts_train = [x for ix, x in enumerate(texts) if ix in train_indices]
texts_test = [x for ix, x in enumerate(texts) if ix in test_indices]
target_train = [x for ix, x in enumerate(target) if ix in train_indices]
target_test = [x for ix, x in enumerate(target) if ix in test_indices]

In [16]:
identity_mat = tf.diag(tf.ones(shape=[embedding_size,]))

In [17]:
identity_mat


Out[17]:
<tf.Tensor 'Diag:0' shape=(2108, 2108) dtype=float32>

In [18]:
# Variables for logistic regression
A = tf.Variable(tf.random_normal(shape=[embedding_size, 1]))
b = tf.Variable(tf.random_normal(shape=[1,1]))

In [19]:
# Placeholders for input data
x_data = tf.placeholder(shape=[sentence_size], dtype=tf.int32)
y_target = tf.placeholder(shape=[1,1], dtype=tf.float32)

In [20]:
x_embed = tf.nn.embedding_lookup(identity_mat, x_data)
x_col_sums = tf.reduce_sum(x_embed, 0)

In [21]:
x_col_sums_2D = tf.expand_dims(x_col_sums, 0)
model_output = tf.add(tf.matmul(x_col_sums_2D, A), b)

In [22]:
loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=model_output, targets=y_target))
predict = tf.sigmoid(model_output)

optimizer = tf.train.GradientDescentOptimizer(0.001)
train_step = optimizer.minimize(loss)

In [23]:
init = tf.global_variables_initializer()

In [24]:
sess.run(init)

In [25]:
losses = []
train_acc = []
train_acc_ave = []

In [26]:
for ix, t in enumerate(vocab_processor.fit_transform(texts_train)):
    y_data = [[target_train[ix]]]
    fd = {x_data: t, y_target:y_data}
    
    sess.run(train_step, feed_dict=fd)
    temp_loss = sess.run(loss, feed_dict=fd)
    losses.append(temp_loss)
    
    if (ix+1) % 10 == 0:
        print('Train Observation #'+str(ix+1)+': loss = '+str(temp_loss))
    
    [[temp_pred]] = sess.run(predict, feed_dict=fd)
    
    train_acc_temp = target_train[ix] == np.round(temp_pred)
    train_acc.append(train_acc_temp)
    if len(train_acc) >= 50:
        train_acc_ave.append(np.mean(train_acc[-50:]))


Train Observation #10: loss = 7.23739
Train Observation #20: loss = 0.182008
Train Observation #30: loss = 0.000897706
Train Observation #40: loss = 0.166723
Train Observation #50: loss = 9.55334e-06
Train Observation #60: loss = 0.308716
Train Observation #70: loss = 0.199991
Train Observation #80: loss = 2.52861e-06
Train Observation #90: loss = 1.11846
Train Observation #100: loss = 0.000600166
Train Observation #110: loss = 0.0239316
Train Observation #120: loss = 0.0321256
Train Observation #130: loss = 3.84802
Train Observation #140: loss = 0.836534
Train Observation #150: loss = 0.00141158
Train Observation #160: loss = 0.0132421
Train Observation #170: loss = 0.00445867
Train Observation #180: loss = 7.00551
Train Observation #190: loss = 0.000543977
Train Observation #200: loss = 7.76219
Train Observation #210: loss = 4.57832
Train Observation #220: loss = 0.00242458
Train Observation #230: loss = 2.77876e-05
Train Observation #240: loss = 0.0108576
Train Observation #250: loss = 5.28961
Train Observation #260: loss = 1.87399e-05
Train Observation #270: loss = 0.228624
Train Observation #280: loss = 4.41485
Train Observation #290: loss = 0.031476
Train Observation #300: loss = 0.130672
Train Observation #310: loss = 0.344797
Train Observation #320: loss = 0.0466174
Train Observation #330: loss = 0.0503934
Train Observation #340: loss = 1.20733
Train Observation #350: loss = 0.0228897
Train Observation #360: loss = 0.00385203
Train Observation #370: loss = 0.00141542
Train Observation #380: loss = 0.00520745
Train Observation #390: loss = 3.08741
Train Observation #400: loss = 13.6822
Train Observation #410: loss = 0.0137834
Train Observation #420: loss = 0.513583
Train Observation #430: loss = 1.5263
Train Observation #440: loss = 0.0954998
Train Observation #450: loss = 0.000443936
Train Observation #460: loss = 0.00212722
Train Observation #470: loss = 0.00704008
Train Observation #480: loss = 0.056144
Train Observation #490: loss = 10.3164
Train Observation #500: loss = 0.0870277
Train Observation #510: loss = 0.0953922
Train Observation #520: loss = 8.09874e-06
Train Observation #530: loss = 8.98292e-05
Train Observation #540: loss = 0.00239194
Train Observation #550: loss = 9.19463
Train Observation #560: loss = 1.11629
Train Observation #570: loss = 3.33258
Train Observation #580: loss = 0.215895
Train Observation #590: loss = 0.0101204
Train Observation #600: loss = 0.0130541
Train Observation #610: loss = 0.0459004
Train Observation #620: loss = 0.114351
Train Observation #630: loss = 0.0236694
Train Observation #640: loss = 0.0571838
Train Observation #650: loss = 0.0241737
Train Observation #660: loss = 0.0337747
Train Observation #670: loss = 0.198427
Train Observation #680: loss = 0.00194174
Train Observation #690: loss = 0.00442261
Train Observation #700: loss = 2.70465
Train Observation #710: loss = 0.465672
Train Observation #720: loss = 3.71123
Train Observation #730: loss = 0.0014399
Train Observation #740: loss = 3.34145
Train Observation #750: loss = 0.0398885
Train Observation #760: loss = 0.00056534
Train Observation #770: loss = 6.50436
Train Observation #780: loss = 0.367782
Train Observation #790: loss = 0.0206359
Train Observation #800: loss = 0.0127466
Train Observation #810: loss = 1.29862
Train Observation #820: loss = 0.000627308
Train Observation #830: loss = 0.0235652
Train Observation #840: loss = 0.016183
Train Observation #850: loss = 0.00179081
Train Observation #860: loss = 4.18686
Train Observation #870: loss = 0.0397143
Train Observation #880: loss = 0.00228966
Train Observation #890: loss = 6.44931e-07
Train Observation #900: loss = 0.0217158
Train Observation #910: loss = 0.399416
Train Observation #920: loss = 4.45359e-07
Train Observation #930: loss = 0.000556041
Train Observation #940: loss = 6.79615
Train Observation #950: loss = 0.000873108
Train Observation #960: loss = 7.63088
Train Observation #970: loss = 21.9899
Train Observation #980: loss = 6.74416
Train Observation #990: loss = 5.81293
Train Observation #1000: loss = 0.00347783
Train Observation #1010: loss = 1.30098e-05
Train Observation #1020: loss = 0.0416806
Train Observation #1030: loss = 0.151594
Train Observation #1040: loss = 0.0598767
Train Observation #1050: loss = 6.14611e-05
Train Observation #1060: loss = 6.97874
Train Observation #1070: loss = 1.43106e-05
Train Observation #1080: loss = 0.000874691
Train Observation #1090: loss = 0.00186546
Train Observation #1100: loss = 4.34294
Train Observation #1110: loss = 1.01218
Train Observation #1120: loss = 0.00453846
Train Observation #1130: loss = 0.00185847
Train Observation #1140: loss = 5.52309e-05
Train Observation #1150: loss = 0.00274323
Train Observation #1160: loss = 0.028275
Train Observation #1170: loss = 0.000848292
Train Observation #1180: loss = 1.50857
Train Observation #1190: loss = 0.0683144
Train Observation #1200: loss = 0.417438
Train Observation #1210: loss = 0.000310874
Train Observation #1220: loss = 0.000697511
Train Observation #1230: loss = 4.4914
Train Observation #1240: loss = 0.0362614
Train Observation #1250: loss = 9.93252e-05
Train Observation #1260: loss = 4.55338
Train Observation #1270: loss = 0.00127148
Train Observation #1280: loss = 9.39726
Train Observation #1290: loss = 0.00109359
Train Observation #1300: loss = 2.69553e-07
Train Observation #1310: loss = 0.000319096
Train Observation #1320: loss = 1.26055e-05
Train Observation #1330: loss = 0.213838
Train Observation #1340: loss = 0.000100791
Train Observation #1350: loss = 0.411739
Train Observation #1360: loss = 0.0432281
Train Observation #1370: loss = 1.51861
Train Observation #1380: loss = 0.113441
Train Observation #1390: loss = 0.00228565
Train Observation #1400: loss = 0.366552
Train Observation #1410: loss = 0.0160299
Train Observation #1420: loss = 0.00242421
Train Observation #1430: loss = 0.00195088
Train Observation #1440: loss = 0.00223062
Train Observation #1450: loss = 0.00108423
Train Observation #1460: loss = 0.000200846
Train Observation #1470: loss = 0.0962202
Train Observation #1480: loss = 1.81332e-06
Train Observation #1490: loss = 0.0713695
Train Observation #1500: loss = 8.44325e-06
Train Observation #1510: loss = 0.00419993
Train Observation #1520: loss = 0.0141092
Train Observation #1530: loss = 0.00649952
Train Observation #1540: loss = 0.000217048
Train Observation #1550: loss = 0.00436382
Train Observation #1560: loss = 0.00052564
Train Observation #1570: loss = 0.00571774
Train Observation #1580: loss = 0.00347411
Train Observation #1590: loss = 0.0079964
Train Observation #1600: loss = 0.0018394
Train Observation #1610: loss = 0.477693
Train Observation #1620: loss = 9.56929e-06
Train Observation #1630: loss = 0.054627
Train Observation #1640: loss = 0.36672
Train Observation #1650: loss = 0.0893135
Train Observation #1660: loss = 0.00353232
Train Observation #1670: loss = 1.62889
Train Observation #1680: loss = 0.040281
Train Observation #1690: loss = 0.000837738
Train Observation #1700: loss = 0.00108724
Train Observation #1710: loss = 0.295255
Train Observation #1720: loss = 0.224216
Train Observation #1730: loss = 0.100594
Train Observation #1740: loss = 0.00321012
Train Observation #1750: loss = 0.474839
Train Observation #1760: loss = 0.000368412
Train Observation #1770: loss = 0.00377712
Train Observation #1780: loss = 0.000126651
Train Observation #1790: loss = 3.62247
Train Observation #1800: loss = 4.19267e-05
Train Observation #1810: loss = 0.0286883
Train Observation #1820: loss = 0.000599694
Train Observation #1830: loss = 3.3698
Train Observation #1840: loss = 0.149223
Train Observation #1850: loss = 2.93707
Train Observation #1860: loss = 0.294866
Train Observation #1870: loss = 0.00233808
Train Observation #1880: loss = 0.00336236
Train Observation #1890: loss = 0.0012352
Train Observation #1900: loss = 1.6067
Train Observation #1910: loss = 0.000325507
Train Observation #1920: loss = 0.00452177
Train Observation #1930: loss = 0.0387279
Train Observation #1940: loss = 5.63886
Train Observation #1950: loss = 1.92949e-05
Train Observation #1960: loss = 1.34921e-05
Train Observation #1970: loss = 0.0885688
Train Observation #1980: loss = 3.62939
Train Observation #1990: loss = 0.00255477
Train Observation #2000: loss = 0.0030878
Train Observation #2010: loss = 0.0051316
Train Observation #2020: loss = 4.25457e-06
Train Observation #2030: loss = 9.21227
Train Observation #2040: loss = 0.000150391
Train Observation #2050: loss = 0.000582073
Train Observation #2060: loss = 0.00421909
Train Observation #2070: loss = 0.711029
Train Observation #2080: loss = 0.163883
Train Observation #2090: loss = 0.0547007
Train Observation #2100: loss = 0.000683874
Train Observation #2110: loss = 0.0228269
Train Observation #2120: loss = 17.4586
Train Observation #2130: loss = 1.77243e-06
Train Observation #2140: loss = 11.7086
Train Observation #2150: loss = 0.0987574
Train Observation #2160: loss = 0.904191
Train Observation #2170: loss = 0.322658
Train Observation #2180: loss = 0.0651076
Train Observation #2190: loss = 0.00336159
Train Observation #2200: loss = 0.000410748
Train Observation #2210: loss = 0.089717
Train Observation #2220: loss = 0.0780388
Train Observation #2230: loss = 0.0348018
Train Observation #2240: loss = 0.00234556
Train Observation #2250: loss = 2.41383
Train Observation #2260: loss = 0.011146
Train Observation #2270: loss = 7.35178e-05
Train Observation #2280: loss = 0.000783729
Train Observation #2290: loss = 0.00947978
Train Observation #2300: loss = 0.275207
Train Observation #2310: loss = 0.0246052
Train Observation #2320: loss = 0.0482739
Train Observation #2330: loss = 0.00109275
Train Observation #2340: loss = 5.10241e-05
Train Observation #2350: loss = 0.0159065
Train Observation #2360: loss = 0.0171466
Train Observation #2370: loss = 0.00255647
Train Observation #2380: loss = 1.50937
Train Observation #2390: loss = 2.84175
Train Observation #2400: loss = 5.60647
Train Observation #2410: loss = 0.00561082
Train Observation #2420: loss = 0.000392801
Train Observation #2430: loss = 4.54355e-05
Train Observation #2440: loss = 0.0418502
Train Observation #2450: loss = 0.0263591
Train Observation #2460: loss = 0.000256805
Train Observation #2470: loss = 0.00109122
Train Observation #2480: loss = 9.15053e-05
Train Observation #2490: loss = 0.0190067
Train Observation #2500: loss = 0.00186708
Train Observation #2510: loss = 0.00183972
Train Observation #2520: loss = 0.0107959
Train Observation #2530: loss = 3.28508
Train Observation #2540: loss = 0.000963221
Train Observation #2550: loss = 0.000235406
Train Observation #2560: loss = 0.00537122
Train Observation #2570: loss = 8.35833e-06
Train Observation #2580: loss = 0.000524234
Train Observation #2590: loss = 0.00262688
Train Observation #2600: loss = 0.00253726
Train Observation #2610: loss = 0.000644847
Train Observation #2620: loss = 5.40995e-05
Train Observation #2630: loss = 3.08426e-05
Train Observation #2640: loss = 4.76702
Train Observation #2650: loss = 1.25975e-05
Train Observation #2660: loss = 1.5213e-06
Train Observation #2670: loss = 7.42058e-06
Train Observation #2680: loss = 0.023112
Train Observation #2690: loss = 0.00134342
Train Observation #2700: loss = 0.000689456
Train Observation #2710: loss = 0.00258168
Train Observation #2720: loss = 0.00141743
Train Observation #2730: loss = 0.000542922
Train Observation #2740: loss = 8.20226
Train Observation #2750: loss = 2.63195
Train Observation #2760: loss = 0.0762413
Train Observation #2770: loss = 0.000491154
Train Observation #2780: loss = 0.00430388
Train Observation #2790: loss = 0.798188
Train Observation #2800: loss = 9.55189
Train Observation #2810: loss = 4.62342e-07
Train Observation #2820: loss = 0.0404559
Train Observation #2830: loss = 0.00875673
Train Observation #2840: loss = 0.00435079
Train Observation #2850: loss = 0.000108236
Train Observation #2860: loss = 11.1072
Train Observation #2870: loss = 3.33303e-05
Train Observation #2880: loss = 0.0264932
Train Observation #2890: loss = 0.283199
Train Observation #2900: loss = 5.59028e-05
Train Observation #2910: loss = 0.000383105
Train Observation #2920: loss = 9.72386
Train Observation #2930: loss = 0.140663
Train Observation #2940: loss = 0.002911
Train Observation #2950: loss = 0.00037255
Train Observation #2960: loss = 5.84794e-06
Train Observation #2970: loss = 0.00011335
Train Observation #2980: loss = 0.00044128
Train Observation #2990: loss = 0.00312478
Train Observation #3000: loss = 0.00077273
Train Observation #3010: loss = 8.20976
Train Observation #3020: loss = 0.00219878
Train Observation #3030: loss = 0.138283
Train Observation #3040: loss = 3.02611e-06
Train Observation #3050: loss = 0.000263373
Train Observation #3060: loss = 0.00680473
Train Observation #3070: loss = 0.153306
Train Observation #3080: loss = 0.0781961
Train Observation #3090: loss = 0.022312
Train Observation #3100: loss = 1.74328
Train Observation #3110: loss = 0.243245
Train Observation #3120: loss = 0.000167159
Train Observation #3130: loss = 0.285345
Train Observation #3140: loss = 0.00208455
Train Observation #3150: loss = 1.3505
Train Observation #3160: loss = 0.00131129
Train Observation #3170: loss = 0.00899045
Train Observation #3180: loss = 4.97275
Train Observation #3190: loss = 0.0119141
Train Observation #3200: loss = 0.037265
Train Observation #3210: loss = 2.13923
Train Observation #3220: loss = 0.787549
Train Observation #3230: loss = 0.000500125
Train Observation #3240: loss = 0.511911
Train Observation #3250: loss = 2.34732
Train Observation #3260: loss = 0.182982
Train Observation #3270: loss = 4.83707
Train Observation #3280: loss = 0.0275492
Train Observation #3290: loss = 1.29301
Train Observation #3300: loss = 0.00728191
Train Observation #3310: loss = 0.0418054
Train Observation #3320: loss = 0.00141877
Train Observation #3330: loss = 0.0627362
Train Observation #3340: loss = 0.188614
Train Observation #3350: loss = 8.03433
Train Observation #3360: loss = 0.0484175
Train Observation #3370: loss = 0.00316332
Train Observation #3380: loss = 0.00139368
Train Observation #3390: loss = 0.00136466
Train Observation #3400: loss = 0.0205316
Train Observation #3410: loss = 0.00381267
Train Observation #3420: loss = 10.2749
Train Observation #3430: loss = 0.0198611
Train Observation #3440: loss = 1.46447
Train Observation #3450: loss = 0.00333911
Train Observation #3460: loss = 9.30501
Train Observation #3470: loss = 0.281467
Train Observation #3480: loss = 0.0642994
Train Observation #3490: loss = 0.0189512
Train Observation #3500: loss = 0.000385039
Train Observation #3510: loss = 0.049626
Train Observation #3520: loss = 0.643713
Train Observation #3530: loss = 3.09365
Train Observation #3540: loss = 0.144483
Train Observation #3550: loss = 0.0190321
Train Observation #3560: loss = 0.00164051
Train Observation #3570: loss = 0.235653
Train Observation #3580: loss = 0.00134415
Train Observation #3590: loss = 0.000712977
Train Observation #3600: loss = 6.16863
Train Observation #3610: loss = 0.0159396
Train Observation #3620: loss = 0.0626508
Train Observation #3630: loss = 0.00764207
Train Observation #3640: loss = 6.89238e-05
Train Observation #3650: loss = 0.323208
Train Observation #3660: loss = 4.34445
Train Observation #3670: loss = 1.54613e-06
Train Observation #3680: loss = 4.46576
Train Observation #3690: loss = 0.00488964
Train Observation #3700: loss = 0.0330319
Train Observation #3710: loss = 3.01348
Train Observation #3720: loss = 0.000809393
Train Observation #3730: loss = 8.08424e-06
Train Observation #3740: loss = 0.00333908
Train Observation #3750: loss = 0.00345216
Train Observation #3760: loss = 0.0016023
Train Observation #3770: loss = 0.001245
Train Observation #3780: loss = 0.000160555
Train Observation #3790: loss = 0.0194462
Train Observation #3800: loss = 0.0122984
Train Observation #3810: loss = 0.0109193
Train Observation #3820: loss = 0.0116708
Train Observation #3830: loss = 0.000226609
Train Observation #3840: loss = 6.9258e-05
Train Observation #3850: loss = 0.218422
Train Observation #3860: loss = 0.0011515
Train Observation #3870: loss = 0.0127645
Train Observation #3880: loss = 0.0160143
Train Observation #3890: loss = 0.0310882
Train Observation #3900: loss = 0.0021351
Train Observation #3910: loss = 0.00724224
Train Observation #3920: loss = 3.01251e-05
Train Observation #3930: loss = 13.1332
Train Observation #3940: loss = 0.0214433
Train Observation #3950: loss = 0.10849
Train Observation #3960: loss = 0.00683851
Train Observation #3970: loss = 9.21081e-05
Train Observation #3980: loss = 1.07163
Train Observation #3990: loss = 0.000988035
Train Observation #4000: loss = 0.00110241
Train Observation #4010: loss = 0.000261217
Train Observation #4020: loss = 0.000345157
Train Observation #4030: loss = 7.63625
Train Observation #4040: loss = 0.174904
Train Observation #4050: loss = 8.35019e-05
Train Observation #4060: loss = 0.0312442
Train Observation #4070: loss = 2.75027
Train Observation #4080: loss = 0.00229853
Train Observation #4090: loss = 0.0312567
Train Observation #4100: loss = 0.00300074
Train Observation #4110: loss = 0.00462331
Train Observation #4120: loss = 6.26057
Train Observation #4130: loss = 0.0652171
Train Observation #4140: loss = 0.0233354
Train Observation #4150: loss = 0.108269
Train Observation #4160: loss = 0.00642455
Train Observation #4170: loss = 0.00100958
Train Observation #4180: loss = 2.59581e-06
Train Observation #4190: loss = 0.00639464
Train Observation #4200: loss = 0.516955
Train Observation #4210: loss = 0.00210175
Train Observation #4220: loss = 0.283461
Train Observation #4230: loss = 0.000560672
Train Observation #4240: loss = 0.00464848
Train Observation #4250: loss = 0.0114711
Train Observation #4260: loss = 0.000676449
Train Observation #4270: loss = 0.0015882
Train Observation #4280: loss = 0.114469
Train Observation #4290: loss = 0.00348632
Train Observation #4300: loss = 0.000485605
Train Observation #4310: loss = 0.000507789
Train Observation #4320: loss = 0.00800808
Train Observation #4330: loss = 1.52662e-05
Train Observation #4340: loss = 0.000689579
Train Observation #4350: loss = 0.00495301
Train Observation #4360: loss = 0.000747253
Train Observation #4370: loss = 6.11799e-05
Train Observation #4380: loss = 4.4579
Train Observation #4390: loss = 3.69133
Train Observation #4400: loss = 1.75475e-06
Train Observation #4410: loss = 6.10242
Train Observation #4420: loss = 0.0499524
Train Observation #4430: loss = 0.901629
Train Observation #4440: loss = 0.00136334
Train Observation #4450: loss = 0.00169447

In [27]:
test_acc = []

In [28]:
for ix, t in enumerate(vocab_processor.fit_transform(texts_test)):
    y_data = [[target_test[ix]]]
    fd = {x_data: t, y_target: y_data}
    
    if (ix + 1) % 50 == 0:
        print('Test Observation #{}'.format(ix + 1))
        
    [[temp_pred]] = sess.run(predict, feed_dict=fd)
    
    test_acc_temp = target_test[ix] == np.round(temp_pred)
    test_acc.append(test_acc_temp)
    
print()
print('Overall Test Accuracy: {}'.format(np.mean(test_acc)))


Test Observation #50
Test Observation #100
Test Observation #150
Test Observation #200
Test Observation #250
Test Observation #300
Test Observation #350
Test Observation #400
Test Observation #450
Test Observation #500
Test Observation #550
Test Observation #600
Test Observation #650
Test Observation #700
Test Observation #750
Test Observation #800
Test Observation #850
Test Observation #900
Test Observation #950
Test Observation #1000
Test Observation #1050
Test Observation #1100

Overall Test Accuracy: 0.7847533632286996

In [ ]: