Ho salvato il modello come documentato su loading and saving.Come salvare/serializzare un modello addestrato in theano?
# saving trained model
f = file('models/simple_model.save', 'wb')
cPickle.dump(ca, f, protocol=cPickle.HIGHEST_PROTOCOL)
f.close()
ca
è un auto-encoder addestrato. È un'istanza della classe cA
. Dallo script in cui costruisco e salvando il modello posso chiamare ca.get_reconstructed_input(...)
e ca.get_hidden_values(...)
senza alcun problema.
In uno script diverso, provo a caricare il modello addestrato.
# loading the trained model
model_file = file('models/simple_model.save', 'rb')
ca = cPickle.load(model_file)
model_file.close()
ricevo il seguente errore.
ca = cPickle.load(model_file)
AttributeError: 'module' object has no attribute 'cA'
L'errore che sto vedendo è dovuto al fatto che stavo usando 'import cA' invece di' from cA import cA'. Il codice che ho postato è altrimenti corretto. Anche le tue alternative sono corrette. Penso che il modo più pulito per chiudere questo thread è che tu aggiunga qualcosa nel tuo primo paragrafo (che identifica la vera fonte del problema) come "assicurati di usare" da cA import cA' e non solo "import cA' ", e potrei contrassegnare la tua risposta come accettata. Grazie! – xagg
Per me, caricare un modello da cpickle è lento come compilarlo. –
Per quanto ho capito, è molto importante sapere che questo file pickle sarà essenzialmente legato allo stesso hardware, almeno non è possibile caricare un modello basato su cuda su un Theano basato su CPU. Sono rimasto molto sorpreso dal fatto che sia un compito non banale trasferire le reti apprese tra diversi hardware. – flaschenpost