Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from __future__ import division, print_function, absolute_import
- import numpy as np # linear algebra
- import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
- import tensorflow as tf
- import keras
- from keras.models import *
- import tflearn
- from tflearn.data_utils import to_categorical
- import tflearn.data_utils as du
- from tflearn.layers.core import input_data, dropout, fully_connected
- from tflearn.layers.conv import conv_2d, max_pool_2d
- from tflearn.layers.normalization import local_response_normalization
- from tflearn.layers.estimator import regression
- train_images = pd.read_csv("../data/csvTrainImages 13440x1024.csv",header=None)
- train_labels = pd.read_csv("../data/csvTrainLabel 13440x1.csv",header=None)
- test_images = pd.read_csv("../data/csvTestImages 3360x1024.csv",header=None)
- test_labels = pd.read_csv("../data/csvTestLabel 3360x1.csv",header=None)
- train_images = train_images.values.astype('float32')
- train_labels = train_labels.values.astype('int32')-1
- test_images = test_images.values.astype('float32')
- test_labels = test_labels.values.astype('int32')-1
- train_labels = keras.utils.to_categorical(train_labels, 28)
- test_labels = keras.utils.to_categorical(test_labels, 28)
- train_images = train_images.reshape([-1, 32, 32, 1])
- test_images = test_images.reshape([-1, 32, 32, 1])
- train_images, mean1 = du.featurewise_zero_center(train_images)
- test_images, mean2 = du.featurewise_zero_center(test_images)
- network = input_data(shape=[None, 32, 32, 1], name='input')
- network = conv_2d(network, 80, 3, activation='relu', regularizer="L2")
- network = max_pool_2d(network, 2)
- network = local_response_normalization(network)
- network = conv_2d(network, 64, 3, activation='relu', regularizer="L2")
- network = max_pool_2d(network, 2)
- network = local_response_normalization(network)
- network = fully_connected(network, 1024, activation='relu')
- network = dropout(network, 0.8)
- network = fully_connected(network, 512, activation='relu')
- network = dropout(network, 0.8)
- network = fully_connected(network, 28, activation='softmax')
- network = regression(network, optimizer='sgd', learning_rate=0.01,
- loss='categorical_crossentropy', name='target')
- model = tflearn.DNN(network, tensorboard_verbose=0)
- model.fit({'input': train_images}, {'target': train_labels}, n_epoch=30,
- validation_set=({'input': test_images}, {'target': test_labels}),
- snapshot_step=1000, show_metric=True, run_id='convnet_arabic_digits')
- score = model.evaluate(test_images, test_labels)
- print('Test accuarcy: %0.2f%%' % (score[0] * 100))
- model.save('arabic.tflearn')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement