What is the error you have?

Le 12 déc. 2016 03:16, "Shen Liuxing" <[email protected]> a écrit :

>
>
> down votefavorite
> <http://stackoverflow.com/questions/41083805/why-my-theano-function-can-not-be-compiled#>
>
> I'm trying to fine-tune a RBM autoencoder and I just use random initial
> parameters and random data to test if my theano function can be
> successfully compiled, but it fails, can someone run this code and tell me
> where it is wrong? Thanks in advance.
>
>
>  import theano
>  import theano.tensor as T
>  import numpy as np
>  import numpy
>  rng = numpy.random
>
>  # Assume the input data is a matrix of size(data_num,data_dim)
>  # Assume the input data has already been normalized (zero mean and unit 
> variance)
>  # this is written for one batch, one layer
>
>
>  '''
>  b1 = T.matrix("b1")
>  b2 = T.matrix("b2")
>  b3 = T.matrix("b3")
>  b4 = T.matrix("b4")
>  b5 = T.matrix("b5")
>  b6 = T.matrix("b6")
>
>  w1 = T.matrix('w1')
>  w2 = T.matrix('w2')
>  w3 = T.matrix('w3')
>  w4 = w1.T
>  w5 = w2.T
>  w6 = w3.T
>  '''
>  data = T.matrix("data")
>
>  training_steps = 1000
>  simulate_data_num = 50
>  lr = 0.01
>
>  ini_value_w1 = rng.randn(10,8)
>  ini_value_w2 = rng.randn(8,6)
>  ini_value_w3 = rng.randn(6,4)
>
>  ini_value_b1 = np.tile(rng.randn(8,1),(1,simulate_data_num))
>  ini_value_b2 = np.tile(rng.randn(6,1),(1,simulate_data_num))
>  ini_value_b3 = np.tile(rng.randn(4,1),(1,simulate_data_num))
>  ini_value_b4 = np.tile(rng.randn(6,1),(1,simulate_data_num))
>  ini_value_b5 = np.tile(rng.randn(8,1),(1,simulate_data_num))
>  ini_value_b6 = np.tile(rng.randn(10,1),(1,simulate_data_num))
>
>  w1 = theano.shared(ini_value_w1, name="w1")
>  w2 = theano.shared(ini_value_w2, name="w2")
>  w3 = theano.shared(ini_value_w3, name="w3")
>  w4 = w3.T
>  w5 = w2.T
>  w6 = w1.T
>
>  b1 = theano.shared(ini_value_b1, name="b1")
>  b2 = theano.shared(ini_value_b2, name="b2")
>  b3 = theano.shared(ini_value_b3, name="b3")
>  b4 = theano.shared(ini_value_b4, name="b4")
>  b5 = theano.shared(ini_value_b5, name="b5")
>  b6 = theano.shared(ini_value_b6, name="b6")
>
>  para = [b1, b2, b3, b4, b5, b6, w1, w2, w3]
>
>  step1_result = T.dot(w1.T,data) + b1 > 0
>  step2_result = T.dot(w2.T,step1_result) + b2 > 0
>  step3_result = T.dot(w3.T,step2_result) + b3 > 0
>  step4_result = T.dot(w4.T,step3_result) + b4 > 0
>  step5_result = T.dot(w5.T,step4_result) + b5 > 0
>  result = T.dot(w6.T,step5_result) + b6
>
>  diff = result - data # Cross-entropy loss function
>  cost = (diff ** 2).mean() # no regulization, this will return the mean of 
> the matrix
>  gw1, gw2, gw3, gb1, gb2, gb3, gb4, gb5, gb6 = T.grad(cost, para)
>
>  # Compile
>  train = theano.function(
>            inputs=[data],
>            outputs=[cost],
>            updates=((w1, w1 - lr*gw1),(w2, w2 - lr*gw2), \
>             (w3, w3 - lr*gw3), (b1, b1 - lr*gb1), \
>             (b2, b2 - lr*gb2), (b3, b3 - lr*gb3), \
>             (b4, b4 - lr*gb4), (b5, b5 - lr*gb5), \
>             (b6, b6 - lr*gb6)))
>
>  predict = theano.function(inputs=[data], outputs=result)
>
>  # Train
>
>  simulate_data = rng.randn(10,simulate_data_num)  # 50 data points
>
>
>
>  cost_record = []
>  for i in range(training_steps):
>     print("iteration:",i)
>     cost = train(simulate_data)
>     cost_record.append(cost)
>
>  print(cost_record)
>  print(cost_record[-1])
>
>  '''
>  print("Final model:")
>  print(w.get_value())
>  print(b.get_value())
>  print("target values for D:")
>  print(D[1])
>  print("prediction on D:")
>  print(predict(D[0]))
>  '''
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "theano-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"theano-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to