簡體   English   中英

如何存儲千層面神經網絡對象

[英]How to Store Lasagne Neural Network Object

我正在嘗試使用Lasagne和NoLearn訓練CNN。 之后,學習結束了,我想存儲神經網絡參數。

特別,

nn = net1.fit(X_train, y_train) # train neural net

with open('nn.pickle', 'wb') as f:
    pickle.dump(nn2, f, -1)

我無法使用pickle(),因為對象(nn)的大小為數十GB。 如何在磁盤上存儲如此大的對象?

Avisek

您可以使用以下方法僅保存其參數,而不是使用pickle保存整個網絡:

值= lasagne.layers.get_all_param_values(net1)

在正式的Lasagne教程中 ,您可以看到get_all_param_values返回表示參數值的numpy數組的列表。 您可以使用numpy.savez保存它們,該函數可以將多個數組以未壓縮的.npz格式存儲到單個文件中。 您也可以使用numpy.savez_compressed壓縮它們。

為了將參數加載到CNN中,首先必須生成網絡體系結構(顯然它必須與以前訓練的相同),然后可以使用np.load從磁盤加載參數,最后將它們分配給網絡調用:

lasagne.layers.set_all_param_values(net1,values)

如果要將Python對象存儲到disc ,則需要序列化。 當您想要序列化時,您需要pickle或...它是“兄弟” cPickle ,有時可能比pickle快數千倍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM