2017-04-17 1 views
1

Je suis une formation CNN. J'ai obtenu environ 0,001 perte l2 vers la fin des époques totales et un poste de contrôle sauvé. Maintenant, quand je veux reprendre l'entraînement, je charge le poste de contrôle et l'erreur je commence avec est supérieure à 0,008.Reprise formation de CNN de point de contrôle dans torch7

Voici comment je checkpoints économies:

paths.mkdir('checkpointsR3') 
parametersR, gradParametersR = nil, nil -- nil them to avoid spiking memory 
if epoch % 50 == 0 then 
    util.save('checkpointsR3/' .. opt.name .. '_' .. (epoch+1000) .. '_net_R.t7', netR, opt.gpu) 
end 

Voici comment je suis le chargement d'un point de contrôle:

-- load Residual Learner 
assert(opt.net ~= '', 'provide a generator model') 
netR = util.load(opt.net, opt.gpu) 
netR:evaluate() 

Le util est un fichier lua utilisé directement à partir soumith chintala's dcgan.torch.

Je voudrais savoir où je vais mal et pourquoi la perte de I2 supérieur à ce qu'il était quand je l'ai entraîné à ce point de contrôle. J'ai vérifié que je charge le point de contrôle le plus entraîné, mais je reçois toujours une erreur plus élevée.

Répondre

1

Got it. Ce fut une faute dans:

netR:evaluate() 

La documentation de la torche ici, Documentation, déclare que si l'on veut reprendre l'entraînement, training() doit être utilisé au lieu de evaluate() parce initialisées différemment BatchNormalization couches pour la formation et les tests.