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')
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)