2017-10-25 8 views
0

私は1000回の反復でネットワークを訓練し、このトレーニングを最初から開始せずに2000回の反復まで続けたいと考えています。私はこの問題の別の注意を読んで、以下のコードを書いたので、最後に私は 'saved_pa​​rams'に自分のパラメータを持っています。しかし、私は今からこれらのパラメータでやらなければならないものは得られません。lasagneを使用して事前トレーニングされたモデルのトレーニングを続ける方法

誰かが私にそのことを説明する方法を説明できますか?トレーニングプロセスにこれらのパラメータをどのように取得するのですか?

from __future__ import print_function 
import numpy as np 
import theano 
import lasagne 
import pickle 


input_var=None 
ini = lasagne.init.HeUniform() 

l_in = lasagne.layers.InputLayer(shape=(None, 1, 120, 120), input_var=input_var) 
b= np.zeros((1, 4), dtype=theano.config.floatX) 
b = b.flatten() 

loc_l1 = lasagne.layers.MaxPool2DLayer(l_in, pool_size=(2, 2)) 
loc_l2 = lasagne.layers.Conv2DLayer(loc_l1, num_filters=20, filter_size=(5, 5), W=ini) 
loc_l3 = lasagne.layers.MaxPool2DLayer(loc_l2, pool_size=(2, 2)) 
loc_l4 = lasagne.layers.Conv2DLayer(loc_l3, num_filters=20, filter_size=(5, 5), W=ini) 
loc_l5 = lasagne.layers.DenseLayer(loc_l4, num_units=50, W=lasagne.init.HeUniform('relu')) 
network = lasagne.layers.DenseLayer(loc_l5, num_units=4, b=b, W=lasagne.init.Constant(0.0), nonlinearity=lasagne.nonlinearities.identity) 


def save_network(filename,param_values): 
    f = open(filename, 'wb') 
    pickle.dump(param_values,f,protocol=-1) 
    f.close() 

def load_network(filename): 
    f = open(filename, 'rb') 
    param_values = pickle.load(f) 
    f.close() 
    return param_values 


save_network("model.npz",lasagne.layers.get_all_param_values(network)) 

saved_params = load_network("model.npz") 
lasagne.layers.set_all_param_values(network, saved_params) 

答えて

0

ロードとそれ以降のコールフィットメソッドを使用するか、パラメータを変更しましたか?あなたはグラフが、その後1000のエポック

0
if(load): 
     net1 = Lenet(classes, num_epochs) 
     net1.load_weights_from('Lenet.npz') 
     network = net1 
     train_X = np.float32(train_X) 
     print("train_x",train_X) 
     print("train_y",train_Y) 
     train_Y = np.int16(train_Y) 
     network = net1.fit(train_X, train_Y, num_epochs) 
     print ("Loading weights successfully done.") 
+0

あなたの答えをありがとうが、私は本当にそれを得ることはありません。私はパラメータを変更しませんでした。あなたは私に言ったコードをどこに置く必要がありますか?私はこのチュートリアルに基づいてファイルを持っていますが、アーキテクチャは変更されています:https://github.com/Lasagne/Lasagne/blob/master/examples/mnist.pyここでは最初の1000回の学習を練習しました。だから私は自分のネットワークパラメータをロードしなければならないし、トレーニングを続けるためにコードをどこに置くべきですか? – csi

0

のためのあなたのエラーを保存したい場合は このコードは一例に過ぎません。 1.最後のトレーニングから訓練されたウエイトをロードします。 2.同じテストトレインデータを使用します(そうでなければ、テストデータを訓練しました)。 3.ネットワークのフィットメソッドを開始します(net_loaded.fit(parameters ))モデルの負荷ウェイトを使用しています

このカスケードからグラフを取得するには、正確な値をエポックグラフに保存するか、結合結果を視覚化するために使用していたものを保存する必要があります。

関連する問題