I am quite new to Theano, while having used Neural Networks in MATLAB before.

I have succeeded with reading all my data from my excel files, and create the input and output lists.

To separate each group, both in input and output, I have created a list that contains lists :

input = [[1 , 2 , 2 ], [5 , 5 ,2], [7 ,8 ,8], [7 ,1 ,1]]

The same goes for output.

So my Input[i] correlates the output[i].

If I create an array, would I lose this correlation? Should I convert my input output to array first and definitely?

Additionally, could a matrix be used instead of array in input and target definition in Theano?

This is also the code I used : list-1 is input and list-2 , output When I tried to convert my data directly from their format I got this error :

Wrong number of dimensions: expected 1, got 2 with shape (29, 9).

import theano
import numpy
import theano.tensor as T
import matplotlib.pyplot as plt
rng = numpy.random

#Training Data
X = numpy.asarray(list-1)
Y = numpy.asarray(list-2)

m_value = rng.randn()
c_value = rng.randn()
m = theano.shared(m_value,name ='m')
c = theano.shared(c_value,name ='c')

x = T.vector('x')
y = T.vector('y')
num_samples = X.shape[0]

prediction = T.dot(x,m)+c
cost = T.sum(T.pow(prediction-y,2))/(2*num_samples)

gradm = T.grad(cost,m)
gradc = T.grad(cost,c)

learning_rate = 0.01
training_steps = 10000

train = theano.function([x,y],cost,updates = [(m,m-learning_rate*gradm),(c,c-learning_rate*gradc)])
test = theano.function([x],prediction)

for i in range(training_steps):
    costM = train(X,Y)

print("Slope :")
print("Intercept :")

a = linspace(0,10,10)
b = test(a)

Just as an update I used another code here and I got this error which is more or less the same but the expectance is the contrary :

Wrong number of dimensions: expected 2, got 1 with shape (6,).



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.