Come swich a teano.tensore di numpy.array?

Ho codici semplice, come illustrato di seguito:

class testxx(object):
    def __init__(self, input):
        self.input = input
        self.output = T.sum(input)
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype = np.float32)
classfier = testxx(a)
outxx = classfier.output
outxx = np.asarray(outxx, dtype = np.float32)

Tuttavia, ottengo il seguente errore informazioni:

ValueError: setting an array element with a sequence.

Inoltre, quando uso la funzione di teano.tensore, sembra che ciò che restituisce è chiamato “tensore”, e semplicemente, non posso cambiare il tipo di numpy.array, anche se quello che dovrebbe essere la forma di una matrice.

Ecco la mia domanda:come posso passare outxx di tipo numpy.array?

  • puoi postare la piena traceback errore?
InformationsquelleAutor user3633343 | 2014-05-14



2 Replies
  1. 3

    Teano “tensore” variabile sono simbolici. Che cosa costruire con loro sono come un programma che si scrive. È necessario compilare un Teano esecuzione della funzione cosa fa questo programma. Ci sono 2 modi per compilare un Teano funzione:

    f = theano.function([testxx.input], [outxx])
    f_a1 = f(a)
    
    # Or the combined computation/execution
    f_a2 = outxx.eval({testxx.input: a})

    Quando si compila un Teano funzione, è necessario dire che l’ingresso e l’output sono. Che è il motivo per cui non c’è 2 parametro nella chiamata a teano.funzione(). la funzione eval() è un interfaccia che provvederà a compilare ed eseguire un Teano funzione di un dato simbolico ingressi con i valori corrispondenti.

  2. 1

    Dal testxx utilizza sum() da theano.tensor e non da numpy, probabilmente si aspetta un TensorVariable come input, e non un array numpy.

    => Sostituire a = np.array(...) con a = T.matrix(dtype=theano.config.floatX).

    Prima della tua ultima riga, outxx sarà quindi un TensorVariable che dipende a. Così si può valutare tramite la somministrazione di un valore di a.

    => Sostituire la tua ultima riga outxx = np.asarray(...) con le seguenti due righe.

    f = theano.function([a], outxx)
    outxx = f(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype = np.float32))

    Il codice riportato di seguito viene eseguito senza errori.

    import theano
    import theano.tensor as T
    import numpy as np
    
    class testxx(object):
        def __init__(self, input):
            self.input = input
            self.output = T.sum(input)
    a = T.matrix(dtype=theano.config.floatX)
    classfier = testxx(a)
    outxx = classfier.output
    f = theano.function([a], outxx)
    outxx = f(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype = np.float32))

    Teano documentazione l’aggiunta di scalari fornisce altri esempi simili.

Lascia un commento