0
votes

Firstly, I would like to apologise as I am not allowed post much code because it's for a university project, but I am seriously stuck.

I am trying to train a ConvNet using the CIFAR-10 dataset with TensorFlow using the following model:

  1. Image: [32,32,3]
  2. conv1: 5,5,3,64 + bias[64](initialised to 0.0's)
  3. norm1: depth_radis=4, bias=1.0, alpha=0.001/9.0, beta=0.75
  4. pool1: ksize=[1,3,3,1], strides=[1,2,2,1], padding=SAME
  5. conv2: 5,5,64,64 + bias[64](initialised to 0.1's)
  6. pool2: ksize=[1,3,3,1], strides=[1,2,2,1], padding=SAME
  7. norm2: depth_radis=4, bias=1.0, alpha=0.001/9.0, beta=0.75
  8. local1: 8*8*64, 384 + bias[384](initialised to 0.1's)
  9. local2: 384, 192 + bias[192](initialised to 0.1's)
  10. dropout: keep_prob=0.5
  11. softmax: [192,10] + bias[10](initialised to 0.0's)

However, the results I'm getting are (with batches of 1000):

  1. step 0, training accuracy 0.09
  2. step 1, training accuracy 0.096
  3. step 2, training accuracy 0.1
  4. step 3, training accuracy 0.108
  5. step 4, training accuracy 0.122
  6. step 5, training accuracy 0.094
  7. step 6, training accuracy 0.086
  8. step 7, training accuracy 0.082
  9. step 8, training accuracy 0.104
  10. step 9, training accuracy 0.09

I'm using the following to update weights:

cross_entropy = tf.reduce_mean(
       tf.nn.softmax_cross_entropy_with_logits(y_conv + 1e-10, y_))
train_step = tf.train.AdamOptimizer(0.0001).minimize(cross_entropy)

This is the guide I've been reading: https://www.tensorflow.org/versions/r0.11/tutorials/deep_cnn/index.html#convolutional-neural-networks

I have tried varying the learning rate from 1e-1 to 1e-8, but no luck. Any help is greatly appreciated. Thanks in advance.

2

2 Answers

0
votes

you could try to do more things on your dataset:

  • normalize your image
  • shuffle your training dataset to reduce the iid(Independent and identically distributed) of data
  • try grayscale image to see some baseline of your model