Je pense que je perds mon esprit à ce moment. J'utilise Lasagne pour un petit réseau de neurones convolutionnels. Il s'entraîne parfaitement, je peux calculer l'erreur sur l'ensemble de formation et de validation, mais je ne peux pas enregistrer le modèle formé sur le disque. Mieux, je peux l'enregistrer et le charger, mais je ne peux pas l'utiliser pour prédire de nouvelles données.Lasagne/Théano, problèmes de chargement modèle décapés
C'est ce que je fais après la formation
model = {'network': network, 'params': get_all_params(network), 'params_values': get_all_param_values(network)}
pickle.dump(model, open('models/model_1.pkl', 'wb'), protocol=pickle.HIGHEST_PROTOCOL)
Et c'est ce que je fais pour charger le modèle
with open('models/model.pkl', 'rb') as pickle_file:
model = pickle.load(pickle_file)
network = model['network']
values = model['params_values']
set_all_param_values(network, values)
T_input = T.tensor4('input', dtype='float32')
T_target = T.ivector('target')
predictions = get_output(network, deterministic=True)
loss = (cross_entropy(predictions, T_target)).mean()
acc = T.mean(T.eq(T.argmax(predictions, axis=1), T_target), dtype=config.floatX)
test_fn = function([T_input, T_target], [loss, acc])
Je ne peux même passer la vraie entrée numpy, que je reçois cette erreur
J'ai essayé de définir le paramètre on_unused_input = 'warn' alors, et ceci est le résultattheano.gof.fg.MissingInputError: An input of the graph, used to compute (..)
was not provided and not given a value.Use the Theano flag
exception_verbosity='high',for more information on this error.
Je pense que vous avez oublié de mettre T_input dans le réseau – malioboro
@malioboro comme réseau (T_input)? mais le réseau d'objets doit déjà être défini pour une entrée de ce type. Peut-être que je devrais essayer d'initier un nouveau réseau et juste définir les valeurs des paramètres. Je vais essayer ça demain. – user1384636