1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| x = tf.placeholder(tf.float32, [None, 3072]) y = tf.placeholder(tf.int64, [None])
x_image = tf.reshape(x, [-1, 3, 32, 32])
x_image = tf.transpose(x_image, perm=[0, 2, 3, 1])
conv1_1 = tf.layers.conv2d(x_image, 32, (3,3), padding = 'same', activation = tf.nn.relu, name = 'conv1_1') conv1_2 = tf.layers.conv2d(conv1_1, 32, (3,3), padding = 'same', activation = tf.nn.relu, name = 'conv1_2')
pooling1 = tf.layers.max_pooling2d(conv1_2, (2, 2), (2, 2), name = 'pool1')
conv2_1 = tf.layers.conv2d(pooling1, 32, (3,3), padding = 'same', activation = tf.nn.relu, name = 'conv2_1') conv2_2 = tf.layers.conv2d(conv2_1, 32, (3,3), padding = 'same', activation = tf.nn.relu, name = 'conv2_2')
pooling2 = tf.layers.max_pooling2d(conv2_2, (2, 2), (2, 2), name = 'pool2')
conv3_1 = tf.layers.conv2d(pooling2, 32, (3,3), padding = 'same', activation = tf.nn.relu, name = 'conv3_1') conv3_2 = tf.layers.conv2d(conv3_1, 32, (3,3), padding = 'same', activation = tf.nn.relu, name = 'conv3_2')
pooling3 = tf.layers.max_pooling2d(conv3_2, (2, 2), (2, 2), name = 'pool3')
flatten = tf.layers.flatten(pooling3) y_ = tf.layers.dense(flatten, 10)
loss = tf.losses.sparse_softmax_cross_entropy(labels=y, logits=y_)
predict = tf.argmax(y_, 1)
correct_prediction = tf.equal(predict, y) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float64))
with tf.name_scope('train_op'): train_op = tf.train.AdamOptimizer(1e-3).minimize(loss)
|