-2

Hello there I just write this code for deep learning:

import tensorflow as tf
from tensorflow.example.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)

n_nodes_hl1 = 500
n_nodes_hl2 = 500
n_nodes_hl3 = 500

n_classes = 10
batch_size = 100

x = tf.placeholder('float', [None, 784])
y = tf.placeholder('float')

def neural_network_model(data):

    hidden_1_layer = {'weights': tf.Variable(tf.random_normal([784,          n_nodes_hl1])),
                      'biases': tf.Variable(tf.random_normal([n_nodes_hl1]))} 

    hidden_2_layer = {'weights': tf.Variable(tf.random_normal([n_nodes_hl1,n_nodes_hl2])),
                  'biases': tf.Variable(tf.random_normal([n_nodes_hl2]))} 

    hidden_3_layer = {'weights': tf.Variable(tf.random_normal([n_nodes_hl2,n_nodes_hl3])),
                   'biases': tf.Variable(tf.random_normal([n_nodes_hl3]))} 

    output_layer = {'weights': tf.Variable(tf.random_normal([n_nodes_hl3,n_classes])),
                  'biases': tf.Variable(tf.random_normal([n_classes]))} 


    l1 = tf.add(tf.matmul(data, hidden_1_layer['weights'], hidden_1_layer['biases']))
    l1 = tf.nn.relu(l1)

    l2 = tf.add(tf.matmul(l1, hidden_2_layer['weights'], hidden_2_layer['biases']))
    l2 = tf.nn.relu(l2)

    l3 = tf.add(tf.matmul(l2, hidden_3_layer['weights'] , hidden_3_layer['biases']))
    l3 = tf.nn.relu(l3)

    output = tf.matmul(l3, ouput_layer['weights']) + output_layer['biases']

    return output

def train_neural_network(x):
    prediction = neural_network_model(x)
    cost = tf.reduce.mean(tf.nn.softmax_cross_entropy_with_logits(prediction,y))
    optimizer = tf.train.AdamOptimizer().minimize(cost)


    hm_epochs = 10

    with tf.Session() as sess:
        sess.run(tf.initialize_all_variables())

        for epoch in range(hm_epochs):
            epoch_loss = 0
            for _ in range(int(mnist.train.num_example/batch_size)):
                epoch_x, epoch_y = mnist.train.next_batch(batch_size)
                _, c = sess.run([optimizer, cost], feed_dict = {x: epoch_x, y: epoch_y})
                epoch_loss += c
            print('Epoch', epoch, 'completed out of', hm_epochs, 'loss:', epoch_loss)


        correct = tf.equal(tf.argmax(prediction,1), tf.argmax(y,1))
        accuracy = tf.reduce_mean(tf.cast(correct, 'float'))
        print('Accuracy:', accuracy.eval({x:mnist.test.images, y:mnist.test.labels}))


train_neural_network(x)

But I got this error:

python3 deep-net_2.py 

File "deep-net_2.py", line 28 hidden_3_layer = {'weights': tf.Variable(tf.random_normal([n_nodes_hl2,n_nodes_hl3])), ^ IndentationError: unindent does not match any outer indentation level

What am I doing wrong?

Kh40tiK
  • 2,276
  • 19
  • 29
matteo
  • 7
  • 1
  • 2
    exactly what it says, it's indentation level is not the same as the others near it (eg might be 5 spaces instead of 4, or it might be indented at 8 when it should be at 4) – e4c5 Nov 12 '16 at 08:28
  • 1
    If the code looks like that in your editor then you would get an indentation error much earlier. Please fix the indentation in your question code so that it matches your real code. Correct indentation is vital in Python. – PM 2Ring Nov 12 '16 at 08:43

1 Answers1

-1

Tensorflow uses Python to compile during graph construction. Thus your indentation needs to follow Python rules. You should double check the offending line has the same indentation as the previous. If necessary, use an editor that allows seeing the spacing characters you are using.

David Wong
  • 748
  • 3
  • 6
  • "Tensorflow uses Python to compile" makes no sense. It is the Python code which uses the Tensorflow library to provide functionality. – Karl Knechtel Jul 14 '23 at 20:00