import numpy as np
import matplotlib.pyplot as plt
import cifar_tools
import tensorflow as tf

names, data, labels = \
    cifar_tools.read_data('/home/binroot/res/cifar-10-batches-py')


def show_conv_results(data, filename=None):
    plt.figure()
    rows, cols = 4, 8
    for i in range(np.shape(data)[3]):
        img = data[0, :, :, i]
        plt.subplot(rows, cols, i + 1)
        plt.imshow(img, cmap='Greys_r', interpolation='none')
        plt.axis('off')
    if filename:
        plt.savefig(filename)
    else:
        plt.show()


def show_weights(W, filename=None):
    plt.figure()
    rows, cols = 4, 8
    for i in range(np.shape(W)[3]):
        img = W[:, :, 0, i]
        plt.subplot(rows, cols, i + 1)
        plt.imshow(img, cmap='Greys_r', interpolation='none')
        plt.axis('off')
Exemple #2
0
import numpy as np
import matplotlib.pyplot as plt
import cifar_tools
import tensorflow as tf

learning_rate = 0.001

names, data, labels = \
    cifar_tools.read_data('/home/binroot/res/cifar-10-batches-py')

x = tf.placeholder(tf.float32, [None, 24 * 24])
y = tf.placeholder(tf.float32, [None, len(names)])
W1 = tf.Variable(tf.random_normal([5, 5, 1, 64]))
b1 = tf.Variable(tf.random_normal([64]))
W2 = tf.Variable(tf.random_normal([5, 5, 64, 64]))
b2 = tf.Variable(tf.random_normal([64]))
W3 = tf.Variable(tf.random_normal([6 * 6 * 64, 1024]))
b3 = tf.Variable(tf.random_normal([1024]))
W_out = tf.Variable(tf.random_normal([1024, len(names)]))
b_out = tf.Variable(tf.random_normal([len(names)]))


def conv_layer(x, W, b):
    conv = tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
    conv_with_b = tf.nn.bias_add(conv, b)
    conv_out = tf.nn.relu(conv_with_b)
    return conv_out


def maxpool_layer(conv, k=2):
    return tf.nn.max_pool(conv,
        plt.axis('off')
    if filename :
        plt.savefig(filename)
    else:
        plt.show()

if __name__ == '__main__':

    # with tf.Session() as sess :
    #     sess.run(tf.global_variables_initializer())
    #
    #     W_val = sess.run(W)
    #     show_weights(W_val, 'step0_weights.png')

    names, data, labels = \
        cifar_tools.read_data('cifar-10-batches-py')

    # get an image from CIFAR dataset and visualize it
    raw_data = data[4, :]
    raw_img = np.reshape(raw_data, (24, 24))
    plt.figure()
    plt.imshow(raw_img, cmap='Greys_r')
    plt.savefig('input_image.png')

    # define the input tensor for 24x24 image
    x = tf.reshape(raw_data, shape=[-1, 24, 24, 1])

    # define the filters and corresponding parameters
    b = tf.Variable(tf.random_normal([32]))
    conv = tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
    conv_with_b = tf.nn.bias_add(conv, b)