def training_model(model_name='mobilenet'): train_gen, valid_gen, tconfig = get_gen_tconfig() callbacks = get_callbacks('mobilenet05_short_adam03_dr35_v3', patience=4) if model_name == 'mobilenet': print('MobileNet') model = MobileNet(config=tconfig, alpha=1.0) model.summary() elif model_name == 'mobilenet_dih': print('MobileNetDih') model = MobileNetDih4(config=tconfig, alpha=1) model.summary() elif model_name == 'mobilenet_dih_r': print('MobileNetDihR') model = MobileNetDR(config=tconfig, alpha=0.5) model.summary() opt = Adam(lr=1e-3, beta_1=0.9, beta_2=0.999) #opt = Adadelta(lr=1e-1, rho=0.95, decay=0.1) #opt = SGD(lr=1e-7, momentum=0.9, decay=0., nesterov=True) model.compile(optimizer=opt, loss='mse', metrics=['mae', 'mse']) #model.load_weights('mobilenet_05shortd01_catcros_resize_b16.hdf5') model.fit_generator(generator=train_gen, steps_per_epoch=1000, epochs=40, validation_data=valid_gen, verbose=2, validation_steps=500, callbacks=callbacks) #opt = Adam(lr=1e-3, beta_1=0.9, beta_2=0.999) #opt = Adadelta(lr=1e-1, rho=0.95, decay=0.1) """
def training_model(model_name='mobilenet'): train_img, valid_img, train_y, valid_y = get_data() callbacks = get_callbacks('mobilenet_10fulld01_b16', patience=2) if model_name == 'mobilenet': print('MobileNet') model = MobileNet(alpha=1.) model.summary() elif model_name == 'mobilenet_dih': print('MobileNetDih') model = MobileNetDih4(alpha=1.) model.summary() elif model_name == 'mobilenet_dih_r': print('MobileNetDihR') model = MobileNetDR(alpha=1.) model.summary() opt = Adam(lr=1e-3, beta_1=0.9, beta_2=0.999) #opt = Adadelta(lr=1e-1, rho=0.95, decay=0.1) #opt = SGD(lr=1e-7, momentum=0.9, decay=0., nesterov=True) model.compile(optimizer=opt, loss='binary_crossentropy', metrics=['accuracy']) #model.load_weights('mobilenet_05shortd01_catcros_resize_b16.hdf5') gen = ImageDataGenerator(rotation_range=359, zoom_range=[0.5, 2], width_shift_range=0.1, height_shift_range=0.1, vertical_flip=True, horizontal_flip=True) model.fit_generator( gen.flow(np.array(train_img), np.array(train_y), batch_size=BATCH_SIZE), steps_per_epoch=16 * len(train_y) // BATCH_SIZE, epochs=40, validation_data=[np.array(valid_img), np.array(valid_y)], verbose=1, callbacks=callbacks) # """ #opt = Adam(lr=1e-3, beta_1=0.9, beta_2=0.999) #opt = Adadelta(lr=1e-1, rho=0.95, decay=0.1) opt = SGD(lr=0.05, momentum=0.9, decay=0., nesterov=True) model.load_weights('mobilenet_10shortd01_b16_sgd') model.fit_generator( gen.flow(np.array(train_img), np.array(train_y), batch_size=BATCH_SIZE), steps_per_epoch=16 * len(train_y) // BATCH_SIZE, epochs=10, validation_data=[np.array(valid_img), np.array(valid_y)], verbose=1, callbacks=callbacks)
def train(): tr_config = { 'flag': True, 'rg': 25, # 7, 5 'wrg': 0.25, # 1, 3 'hrg': 0.25, # 1, 3 'zoom': 0.25 # 1, 1 } callbacks = get_callbacks('mynet_v4_bias', patience=30) paths, y = search_file('set1/segmented_set1') paths, y = search_file('set2/segmented_set2', paths=paths, y=y) ds = DataSet(nframe=30, fstride=6, name='UT interaction', size=[224, 224, 3], filepaths=paths, y=y, kernel_size=4) ds.make_set(op='msqr', name='train') ds.make_set(op='msqr', name='valid') #opt = Adam(lr=1e-4, beta_1=0.9, beta_2=0.999, decay=0.1) #opt = SGD(lr=2*1e-1, momentum=0.9, nesterov=True, decay=0.2) opt = RMSprop(lr=0.001, rho=0.9, decay=0.01) model = MobileNet(alpha=1.0, shape=[29, 56, 56, 1], nframe=29) model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy']) model.summary() #model.load_weights('mynet_v4.h5') model.fit_generator(generator=ds.train_gen(batch_size=5, aug_config=tr_config), steps_per_epoch=100, epochs=300, validation_data=ds.valid_gen(), verbose=1, validation_steps=ds.getVlen, callbacks=callbacks)
# 神兽保佑 # BUG是不可能有BUG的! import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' from mobilenet import MobileNet import numpy as np np.random.seed(10) from keras.datasets import cifar10 from keras.utils import np_utils (x_img_train, y_label_train),(x_img_test, y_label_test) = cifar10.load_data() x_img_train = x_img_train.astype('float')/255.0 x_img_test = x_img_test.astype('float')/255.0 y_label_train = np_utils.to_categorical(y_label_train) y_label_test = np_utils.to_categorical(y_label_test) model = MobileNet() try: model.load_weights("mobileV1-lite.h5") print("模型加载成功!继续训练") except: print("模型加载失败!从头开始训练") model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy']) train_history = model.fit(x_img_train, y_label_train, validation_split=0.2, epochs=10, batch_size=128, verbose=2) model.save_weights("mobileV1-lite.h5") print("保存模型成功!")
import matplotlib.patches np.set_printoptions(precision=2) os.chdir("./handwritten_digit_recognition/") # from wide_resnet_28_10 import WideResNet28_10 from mobilenet import MobileNet from utils import load_mnist os.chdir("../") PATH = './handwritten_digit_recognition/models/' #model_name = "WideResNet28_10" #model=WideResNet28_10() model_name = "MobileNet" model = MobileNet() model.compile() model2 = MobileNet() model2.compile() print('Loading pretrained weights for ', model_name, '...', sep='') model.load_weights(PATH + model_name + "_ajustado_1" + '.h5') model2.load_weights(PATH + model_name + '.h5') def mesaImagen(mesa, boleta=1): fname = 'actas/{0:06d}'.format(mesa * 10 + boleta) + '.jpg' data_name = "mesas_rv/" + '{}'.format(mesa) + '.json' path = "./" out_path = './results/'