In [1]:
from __future__ import division, print_function, absolute_import

import tflearn
from tflearn.data_utils import shuffle, to_categorical
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.conv import conv_2d, max_pool_2d
from tflearn.layers.estimator import regression
from tflearn.data_preprocessing import ImagePreprocessing
from tflearn.data_augmentation import ImageAugmentation

import sys, time
import numpy as np
sys.path.insert(0, '../')
import tensorflow as tf
from library.datasets import cifar10
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from library.utils import file_utils
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score


-------------------------------------------------------------------------
ModuleNotFoundError                     Traceback (most recent call last)
<ipython-input-1-5dcb38f854de> in <module>()
      1 from __future__ import division, print_function, absolute_import
      2 
----> 3 import tflearn
      4 from tflearn.data_utils import shuffle, to_categorical
      5 from tflearn.layers.core import input_data, dropout, fully_connected

ModuleNotFoundError: No module named 'tflearn'

In [ ]:
total_time = 0

In [ ]:
cifar10_dataset = cifar10.CIFAR10(one_hot_encode=True, num_images=1.0, image_mode='rgb_float',
                                  train_validate_split=None, endian='little')
cifar10_dataset.load_data(train=True, test=True, data_directory='./datasets/cifar10/')

In [ ]:
X = cifar10_dataset.train.images
Y = cifar10_dataset.train.one_hot_labels
X_test = cifar10_dataset.test.images
Y_test = cifar10_dataset.test.one_hot_labels

X_train, X_validate, Y_train, Y_validate = train_test_split(X, Y, test_size=0.2, random_state=1)

In [ ]:
exp_no = 1
file_no = 20
dataset = 'cifar10'

In [ ]:
model_dir='./logs/model1'

In [ ]:
log_dir = '../logs/' + dataset + '/' + str(file_no).zfill(2) + '_tf_cnn/exp_no_' + str(exp_no) + '/'
#ck_path = '../ckpts/' + 'ckpt_tf_cnn/exp_no_' + str(exp_no) + '/'+'model.tfl.ckpt'
#cptfile = model.tfl.ckpt
ck_path = log_dir + 'model.tfl.ckpt'
log_file = log_dir + 'tflearncnn_classifier.ckpt'
print('Writing tensorboard logs to %s' %log_file)
print('view logs by running tensorboard: ', end='')
print('\"tensorboard --logdir=\'./10_tf_cnn/\' --port 61111\"')

In [ ]:


In [ ]:
# Real-time data preprocessing
img_prep = ImagePreprocessing()
img_prep.add_featurewise_zero_center()
img_prep.add_featurewise_stdnorm()

In [ ]:
# Real-time data augmentation
img_aug = ImageAugmentation()
img_aug.add_random_flip_leftright()
img_aug.add_random_rotation(max_angle=25.)

In [ ]:
network = input_data(shape=[None, 32, 32, 3],data_preprocessing=img_prep,data_augmentation=img_aug)
#network = input_data(shape=[None, 32, 32, 3])

In [ ]:
# 0.80589
# network = conv_2d(network, 32, 3, activation='relu')
# network = max_pool_2d(network, 2)
# network = conv_2d(network, 128, 3, activation='relu')
# network = max_pool_2d(network, 2)
# network = conv_2d(network, 512, 3, activation='relu')
# network = max_pool_2d(network, 2)
# network = fully_connected(network, 1024, activation='relu')
# network = dropout(network, 0.5)
# network = fully_connected(network, 10, activation='softmax')
# network = regression(network, optimizer='adam',
#                      loss='categorical_crossentropy',
#                      learning_rate=0.001)
network = conv_2d(network, 32, 3, activation='relu')
network = max_pool_2d(network, 2)
network = conv_2d(network, 64, 3, activation='relu')
network = max_pool_2d(network, 2)
network = conv_2d(network, 128, 3, activation='relu')
network = max_pool_2d(network, 2)
network = conv_2d(network, 256, 3, activation='relu')
network = max_pool_2d(network, 2)
network = fully_connected(network, 1024, activation='relu')
network = dropout(network, 0.5)
network = fully_connected(network, 2048, activation='relu')
network = dropout(network, 0.5)
network = fully_connected(network, 10, activation='softmax')
network = regression(network, optimizer='adam',
                     loss='categorical_crossentropy',
                     learning_rate=0.001)

In [ ]:
start = time.time()
model = tflearn.DNN(network, tensorboard_verbose=1,tensorboard_dir=log_file,checkpoint_path=ck_path)
#model.load(ck_path)

model.fit(X_train, Y_train, n_epoch=5, shuffle=True,snapshot_epoch=True, validation_set=(X_validate, Y_validate),
          show_metric=True, batch_size=96, run_id='cifar10_cnn')
end = time.time()
print(end-start)

In [ ]:
# labels = model.predict_label(X_test)

In [ ]:
# labels1 = numpy.floor(numpy.divide(labels,numpy.amax(labels,axis=0)))
# labels2 = numpy.argmax(labels1, axis=1, out=None)
# print(labels2)
# print(cifar10_dataset.test.class_labels)

In [ ]:
# result = accuracy_score(cifar10_dataset.test.class_labels, labels2, normalize=True)
# print("accuracy",result)

In [ ]:
model.evaluate(cifar10_dataset.test.images, cifar10_dataset.test.one_hot_labels)

In [ ]:


In [ ]: