2017-09-12 3 views
1

J'apprends à faire avec du python et des lasagnes. J'installé sur mon suivant pc:Méthode manquante NeuralNet.train_split() en lasagne

  • python
  • 3.4.3 Théano 0.9.0
  • lasagnes 0.2.dev1

et aussi six, scipy et numpy. J'appelle net.fit(), et la stacktrace essaie d'appeler train_split(X, y, self), ce qui, je suppose, devrait diviser les échantillons en jeu d'apprentissage et en jeu de validation (à la fois les entrées X et les sorties Y).

Mais il n'y a pas de méthode comme train_split(X, y, self), il n'y a qu'un champ float train_split - je suppose, le rapport entre les tailles d'ensemble d'apprentissage et de validation. Ensuite, je reçois erreur suivante:

Traceback (most recent call last):

File "...\workspaces\python\cnn\dl_tutorial\lasagne\Test.py", line 72, in net = net1.fit(X[0:10,:,:,:],y[0:10])

File "...\Python34\lib\site-packages\nolearn\lasagne\base.py", line 544, in fit self.train_loop(X, y, epochs=epochs)

File "...\Python34\lib\site-packages\nolearn\lasagne\base.py", line 554, in train_loop X_train, X_valid, y_train, y_valid = self.train_split(X, y, self)

TypeError: 'float' object is not callable

Qu'est-ce qui pourrait être faux ou manquant? Aucune suggestion? Merci beaucoup.

Répondre

0

SOLVED

dans les versions précédentes, le paramètre d'entrée train_split a été un certain nombre, qui a été utilisé par la méthode du même nom. Dans nolearn 0.6.0, c'est un objet appelable, qui peut implémenter sa propre logique pour diviser les données. Donc, au lieu de fournir un nombre flottant au paramètre d'entrée train_split, je dois fournir une instance appelable (la valeur par défaut est TrainSplit), qui sera exécutée à chaque époque de formation.