예제 #1
0
def train(model, batch_size, max_nb_cha, nb_epoch, save_dir, train_data,
          val_data):
    print 'X_train shape:', X_train.shape
    print X_train.shape[0], 'train samples'
    if os.path.exists(save_dir) == False:
        os.mkdir(save_dir)

    start_time = time.time()
    save_path = save_dir + 'weights.{epoch:02d}-{val_loss:.2f}.hdf5'
    check_pointer = ModelCheckpoint(save_path, save_best_only=True)
    # history = model.fit(train_data, batch_size=batch_size, nb_epoch=nb_epoch,
    #     validation_data=val_data,
    #     validation_split=0.01,
    #     callbacks=[check_pointer])
    history = model.fit(
        train_data['input'],
        train_data['output1'],
        batch_size=batch_size,
        nb_epoch=nb_epoch,
        validation_data=(val_data['input'], val_data['output1']),
        # validation_split=0.1,
        callbacks=[check_pointer])

    plot_loss_figure(
        history,
        save_dir + str(datetime.now()).split('.')[0].split()[1] + '.jpg')
    print 'Training time(h):', (time.time() - start_time) / 3600
예제 #2
0
def train(model, batch_size, nb_epoch, save_dir, train_data, val_data,
          char_set):
    X_train, y_train = train_data[0], train_data[1]
    sample_weight = get_sample_weight(y_train, char_set)
    print 'X_train shape:', X_train.shape
    print X_train.shape[0], 'train samples'
    if os.path.exists(save_dir) == False:
        os.mkdir(save_dir)

    start_time = time.time()
    save_path = save_dir + 'weights.{epoch:02d}-{val_loss:.2f}.hdf5'
    check_pointer = ModelCheckpoint(save_path, save_best_only=True)
    history = model.fit(X_train,
                        y_train,
                        batch_size=batch_size,
                        nb_epoch=nb_epoch,
                        validation_data=val_data,
                        validation_split=0.1,
                        callbacks=[check_pointer],
                        sample_weight=sample_weight)

    plot_loss_figure(
        history,
        save_dir + str(datetime.now()).split('.')[0].split()[1] + '.jpg')
    print 'Training time(h):', (time.time() - start_time) / 3600
def train(model, batch_size, nb_epoch, save_dir, train_X, train_y, val_data):
	print('train_X shape:', train_X.shape)
	print(train_X.shape[0], 'train samples')
	if os.path.exists(save_dir) == False:
		os.mkdir(save_dir)

	start_time = time.time()
	save_path = save_dir + 'weights.{epoch:02d}-{val_loss:.3f}.h5'
	check_pointer = ModelCheckpoint(save_path, 
        		save_best_only=True)
	history = model.fit(train_X, train_y, batch_size=batch_size, nb_epoch=nb_epoch, 
		validation_data=val_data,
		validation_split=0.1, 
		callbacks=[check_pointer],
		)
	#model.save(save_path)
	plot_loss_figure(history, save_dir + str(datetime.now()).split('.')[0].split()[1]+'.png')
	print('Training time(h):', (time.time()-start_time) / 3600)
예제 #4
0
def train_on_generator(model, batch_size, max_nb_cha, nb_epoch, save_dir,
                       generator, val_data):
    print 'Train using generator'
    if os.path.exists(save_dir) == False:
        os.mkdir(save_dir)

    start_time = time.time()
    save_path = save_dir + 'weights.{epoch:02d}-{val_loss:.2f}.hdf5'
    check_pointer = ModelCheckpoint(save_path)
    samples_per_epoch = 50000  # 每个epoch跑多少数据
    history = model.fit_generator(generator,
                                  samples_per_epoch=samples_per_epoch,
                                  nb_epoch=nb_epoch,
                                  nb_worker=4,
                                  validation_data=val_data,
                                  callbacks=[check_pointer])

    plot_loss_figure(
        history,
        save_dir + str(datetime.now()).split('.')[0].split()[1] + '.jpg')
    print 'Training time(h):', (time.time() - start_time) / 3600
예제 #5
0
def train(model, batch_size, nb_epoch, save_dir, train_data, val_data, char_set):
	X_train, y_train = train_data[0], train_data[1]
	sample_weight = get_sample_weight(y_train, char_set)
	print 'X_train shape:', X_train.shape
	print X_train.shape[0], 'train samples'
	if os.path.exists(save_dir) == False:
		os.mkdir(save_dir)

	start_time = time.time()
	save_path = save_dir + 'weights.{epoch:02d}-{val_loss:.2f}.hdf5'
	check_pointer = ModelCheckpoint(save_path, 
		save_best_only=True)
	history = model.fit(X_train, y_train, batch_size=batch_size, nb_epoch=nb_epoch, 
		validation_data=val_data,
		validation_split=0.1, 
		callbacks=[check_pointer],
		sample_weight=sample_weight
		)

	plot_loss_figure(history, save_dir + str(datetime.now()).split('.')[0].split()[1]+'.jpg')
	print 'Training time(h):', (time.time()-start_time) / 3600
예제 #6
0
def train(model, batch_size, nb_epoch, save_dir, train_data, val_data,
          char_set):
    #pdb.set_trace()
    X_train, y_train = train_data[0], train_data[1]
    print('X_train shape:', X_train.shape)
    print(X_train.shape[0], 'train samples')
    if os.path.exists(save_dir) == False:
        os.mkdir(save_dir)

    start_time = time.time()
    save_path = save_dir + 'weights.{epoch:02d}-{val_loss:.2f}.hdf5'
    check_pointer = ModelCheckpoint(save_path, save_best_only=True)
    hist = model.fit(X_train,
                     y_train,
                     batch_size=batch_size,
                     nb_epoch=nb_epoch,
                     validation_data=val_data,
                     validation_split=0.1,
                     callbacks=[check_pointer],
                     sample_weight=None)  #返回记录字典,包括每一次迭代的训练误差率和验证误差率

    plot_loss_figure(
        hist, save_dir + str(datetime.now()).split('.')[0].split()[1] + '.png')
    print('Training time(h):', (time.time() - start_time) / 3600)