Show
Ignore:
Timestamp:
04/22/09 01:05:16 (6 years ago)
Author:
rezoo
Message:

残りのバグ潰し.オプションの追加.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/python/tremolo/tremolo/indications/neuralnet.py

    r32710 r32712  
    55from foundation import Indication, Indications 
    66 
    7 from pybrain.tools.shortcuts import buildNetwork 
    8 from pybrain.datasets import SupervisedDataSet 
    9 from pybrain.structure import RecurrentNetwork, LinearLayer, SigmoidLayer 
    10 from pybrain.supervised import RPropMinusTrainer 
     7try: 
     8        from pybrain.tools.shortcuts import buildNetwork 
     9        from pybrain.datasets import SupervisedDataSet 
     10        from pybrain.structure  import RecurrentNetwork, LinearLayer, SigmoidLayer 
     11        from pybrain.supervised import RPropMinusTrainer 
     12except:  
     13        raise ImportError("this module needs pybrain.")  
    1114 
    1215class FeedForwardNetwork (Indication): 
     
    2124        def getType(cls): return float 
    2225         
    23         def __init__(self, indications, target, network=None, hiddenLayers=10, dim=1, parent=None): 
     26        def __init__(self, indications, target, network=None, 
     27                     hiddenLayers=10, dim=1, verbose=True, parent=None): 
    2428                """ 
    2529                オブジェクトのコンストラクタです. 
     
    3034                hiddenLayers : 隠れレイヤに用いるシグモイドユニットの数 
    3135                dim          : 隠れレイヤの数 
     36                verbose      : 詳細なログを出力するか.デフォルトはTrue 
    3237                parent       : 親となるオブジェクト 
    3338                """ 
     
    4550                self.__hiddenLayers = hiddenLayers 
    4651                self.__dim = dim 
     52                self.__verbose = verbose 
    4753                 
    4854                if network: self.__network = network 
     
    5561                 
    5662                self.__dataset = SupervisedDataSet(len(self.indications), 1) 
    57                 self.__trainer = RPropMinusTrainer(self.__network, verbose=True) 
     63                self.__trainer = RPropMinusTrainer(self.__network, verbose=verbose) 
     64         
     65        def getVerbose(self): return self.__verbose 
     66        def setVerbose(self, v): 
     67                self.__verbose = v 
     68                self.__trainer.verbose = v 
     69        verbose = property(getVerbose, setVerbose) 
    5870         
    5971        def getIndications(self): return self.__indications 
     
    102114                """ 
    103115                self.__dataset = SupervisedDataSet(len(self.indications), 1) 
    104                 self.__trainer = RPropMinusTrainer(self.__network, verbose=True) 
    105116         
    106117        def train(self): 
     
    121132                """ 
    122133                vp = validationProportion 
    123                 self.__trainer.trainUntilConvergence(validationProportion = vp) 
     134                self.__trainer.trainUntilConvergence(dataset=self.__dataset, 
     135                                                     validationProportion = vp) 
    124136         
    125137        def evaluate(self, t): 
     
    138150        def getType(cls): return float 
    139151         
    140         def __init__(self, indications, target, 
    141                      network=None, hiddenLayers=10, dim=1, parent=None): 
     152        def __init__(self, indications, target, network=None, 
     153                     hiddenLayers=10, dim=1, verbose=True, parent=None): 
    142154                """ 
    143155                オブジェクトのコンストラクタです. 
     
    162174                self.__hiddenLayers = hiddenLayers 
    163175                self.__dim = dim 
     176                self.__verbose = verbose 
    164177                 
    165178                if network: self.__network = network 
     
    174187                self.__dataset = SupervisedDataSet(len(self.indications), 1) 
    175188                self.__trainer = RPropMinusTrainer(self.__network, 
    176                                                    self.__dataset, verbose=True) 
     189                                                   self.__dataset, verbose=verbose) 
     190         
     191        def getVerbose(self): return self.__verbose 
     192        def setVerbose(self, v): 
     193                self.__verbose = v 
     194                self.__trainer.verbose = v 
     195        verbose = property(getVerbose, setVerbose) 
    177196         
    178197        def getIndications(self): return self.__indications 
     
    221240                """ 
    222241                self.__dataset = SupervisedDataSet(len(self.indications), 1) 
    223                 self.__trainer = RPropMinusTrainer(self.__network, verbose=True) 
    224242         
    225243        def train(self): 
     
    233251                指定された回数分だけ学習を行います. 
    234252                """ 
    235                 self.__trainer.trainEpochs(self.__dataset, epochs) 
     253                self.__trainer.trainOnDataset(self.__dataset, epochs) 
    236254         
    237255        def trainUntilConvergence(self, validationProportion=0.25): 
     
    240258                """ 
    241259                vp = validationProportion 
    242                 self.__trainer.trainUntilConvergence(validationProportion = vp) 
     260                self.__trainer.trainUntilConvergence(dataset=self.__dataset, 
     261                                                     validationProportion = vp) 
    243262         
    244263        def evaluate(self, t):