예제 #1
0
class main(object):
    def parse(self):
        parser = argparse.ArgumentParser(description="chatbot")
        parser.add_argument('--train', action='store_true', help='whether train')
        parser.add_argument('--test', action='store_true', help='whether test')
        parser.add_argument('--model_restore', action='store_true', help='whether restore the model')
        
        try:
            from argument import add_arguments
            parser = add_arguments(parser)
        except:
            pass
        args = parser.parse_args()
        return args
    def set_parameter(self, args):
        print('setting parameters...')
        if args.train:
            self.batch_size = 200
            self.mode = 'train'
        elif args.test:
            self.batch_size = 1
            self.mode = 'test'
    
    def set_training_data(self):
        print('getting training data...')
        self.max_len = 25
        dataset = DataManager(max_len = self.max_len)
        self.val_size,self.train_x,self.train_y,self.dictionary = dataset.getTrainData()
        tf.reset_default_graph()
    def set_testing_data(self):
        print('setting testing data...')
        self.max_len = 25
        dataset = DataManager(max_len = self.max_len)
        self.val_size, self.dictionary = dataset.getTestData()
        tf.reset_default_graph()
    def getting_model(self, args):
        print('getting model...')
        if args.train or args.test:
            self.model = Model(batch_size = self.batch_size , val_size = self.val_size, 
                max_len = self.max_len ,args = args , dictionary = self.dictionary)#
            self.model.compile()
            if (args.train and args.model_restore) or args.test:
                self.model.restore(mode = self.mode)
    
    def train(self, args):
        print('start traing...')
        #start train
        epoch = 0
        min_loss = math.inf
        while True:
            epoch += 1
            loss = self.model.fit(self.train_x, self.train_y, self.batch_size, epoch)
            
            #store the Model
            self.model.save()
        
    def test(self, args):  
        print('start testing...')     
        while True:
            ques = input('請說話...')
          
            ans = self.model.predict(ques)
            
            print(ans)
예제 #2
0
import sys
from utils import readjson
from models.SimpleRergression import Linear
from utils.DataLoader import DataLoader
from models.Model import Model

if __name__ == '__main__':
    config = readjson(sys.argv[1])
    linear = Linear(**config['linear'])
    dataloader = DataLoader(**config['dataloader'])
    modal = Model(linear, dataloader, **config['modal'])
    modal.fit()