Explore Courses Blog Tutorials Interview Questions
0 votes
in Machine Learning by (19k points)

I am trying to implement multivariate linear regression in Python using TensorFlow, but have run into some logical and implementation issues. My code throws the following error:

Attempting to use uninitialized value Variable

Caused by op u'Variable/read'

Ideally the weights output should be [2, 3]

def hypothesis_function(input_2d_matrix_trainingexamples,



                        learning_rate, num_steps):

    # calculate num attributes and num examples

    number_of_attributes = len(input_2d_matrix_trainingexamples[0])

    number_of_trainingexamples = len(input_2d_matrix_trainingexamples)

    #Graph inputs

    x = []

    for i in range(0, number_of_attributes, 1):


    y_input = tf.placeholder("float")

    # Create Model and Set Model weights

    parameters = []

    for i in range(0, number_of_attributes, 1):



    #Contruct linear model

    y = tf.Variable(parameters[0], "float")

    for i in range(1, number_of_attributes, 1):

        y = tf.add(y, tf.multiply(x[i], parameters[i]))

    # Minimize the mean squared errors

    loss = tf.reduce_mean(tf.square(y - y_input))

    optimizer = tf.train.GradientDescentOptimizer(learning_rate)

    train = optimizer.minimize(loss)

    #Initialize the variables

    init = tf.initialize_all_variables()

    # launch the graph

    session = tf.Session()

    for step in range(1, num_steps + 1, 1):

        for i in range(0, number_of_trainingexamples, 1):

            feed = {}

            for j in range(0, number_of_attributes, 1):

                array = [input_2d_matrix_trainingexamples[i][j]]

                feed[j] = array

            array1 = [output_matrix_of_trainingexamples[i]]

            feed[number_of_attributes] = array1

  , feed_dict=feed)

    for i in range(0, number_of_attributes - 1, 1):

        print ([i]))

array = [[0.0, 1.0, 2.0], [0.0, 2.0, 3.0], [0.0, 4.0, 5.0]]

hypothesis_function(array, [8.0, 13.0, 23.0], [1.0, 1.0, 1.0], 0.01, 200)

1 Answer

0 votes
by (33.1k points)

Your code syntax is not clear to me, but I tried to understand the problem somehow.

The list Initial_parameters_of_hypothesis_function is a list of tf.Variable objects, then the line will fail because TensorFlow can’t compute to figure out the dependencies in variable initialization.

You can simply change the loop that creates parameters to use initial_parameters_of_hypothesis_function[i].initialized_value(), which adds the necessary dependency:

parameters = [] 

for i in range(0, number_of_attributes, 1): 

parameters.append(tf.Variable( initial_parameters_of_hypothesis_function[i].initialized_value()))

Hope this answer helps.

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

29.3k questions

30.6k answers


104k users

Browse Categories