def fit_better(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0:pick_size, :, :, :] valid_labels = valid_labels[0:pick_size, :] test_dataset = test_dataset[0:pick_size, :, :, :] test_labels = test_labels[0:pick_size, :] better_hps_list = etc_hp() for better_hps in better_hps_list: basic_hypers = { 'batch_size': int(float(better_hps[0])), 'patch_size': int(float(better_hps[4])), 'depth': int(float(better_hps[1])), 'num_hidden': int(float(better_hps[2])), 'layer_sum': int(float(better_hps[3])), 'starter_learning_rate': 0.1 } # if basic_hypers['batch_size'] < 10: # basic_hypers['batch_size'] = 10 if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params) else: print('can not find better hypers')
def hp_train(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0:pick_size, :, :, :] valid_labels = valid_labels[0:pick_size, :] test_dataset = test_dataset[0:pick_size, :, :, :] test_labels = test_labels[0:pick_size, :] basic_hypers = { 'batch_size': 32, 'patch_size': 5, 'depth': 16, 'num_hidden': 64, 'layer_sum': 2 } stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params, drop=True, lrd=False)
def fit_better(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0: pick_size, :, :, :] valid_labels = valid_labels[0: pick_size, :] test_dataset = test_dataset[0: pick_size, :, :, :] test_labels = test_labels[0: pick_size, :] better_hps_list = etc_hp() for better_hps in better_hps_list: basic_hypers = { 'batch_size': int(float(better_hps[0])), 'patch_size': int(float(better_hps[4])), 'depth': int(float(better_hps[1])), 'num_hidden': int(float(better_hps[2])), 'layer_sum': int(float(better_hps[3])), 'starter_learning_rate': 0.1 } # if basic_hypers['batch_size'] < 10: # basic_hypers['batch_size'] = 10 if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] conv_train( train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params) else: print('can not find better hypers')
def fit_predict(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0: pick_size, :, :, :] valid_labels = valid_labels[0: pick_size, :] test_dataset = test_dataset[0: pick_size, :, :, :] test_labels = test_labels[0: pick_size, :] basic_hypers = { 'batch_size': 10, 'patch_size': 10, 'depth': 10, 'num_hidden': 10, 'layer_sum': 3 } while(True): basic_hypers['batch_size'] = random.randint(basic_hypers['batch_size'] / 2, basic_hypers['batch_size'] * 2) basic_hypers['patch_size'] = random.randint(basic_hypers['patch_size'] / 2, basic_hypers['patch_size'] * 2) basic_hypers['depth'] = random.randint(basic_hypers['depth'] / 2, basic_hypers['depth'] * 2) basic_hypers['num_hidden'] = random.randint(basic_hypers['num_hidden'] / 2, basic_hypers['num_hidden'] * 2) basic_hypers['layer_sum'] = random.randint(basic_hypers['layer_sum'] / 2, basic_hypers['layer_sum'] * 2) if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params, lrd=True)
def fit_better(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0:pick_size, :, :, :] valid_labels = valid_labels[0:pick_size, :] test_dataset = test_dataset[0:pick_size, :, :, :] test_labels = test_labels[0:pick_size, :] basic_hypers = { 'batch_size': 10, 'patch_size': 10, 'depth': 10, 'num_hidden': 10, 'layer_sum': 3, 'starter_learning_rate': 0.1 } if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 if basic_hypers['layer_sum'] > 3: basic_hypers['layer_sum'] = 3 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] better_hps = conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params) while valid_hp(better_hps): basic_hypers = { 'batch_size': better_hps[0], 'patch_size': better_hps[4], 'depth': better_hps[1], 'num_hidden': better_hps[2], 'layer_sum': better_hps[3], 'starter_learning_rate': better_hps[5] } # if basic_hypers['batch_size'] < 10: # basic_hypers['batch_size'] = 10 if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 if basic_hypers['layer_sum'] > 3: basic_hypers['layer_sum'] = 3 if basic_hypers['patch_size'] <= basic_hypers['layer_sum']: basic_hypers['patch_size'] = basic_hypers['layer_sum'] print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] better_hps = conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params) else: print('can not find better hypers')
def random_hp(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0:pick_size, :, :, :] valid_labels = valid_labels[0:pick_size, :] test_dataset = test_dataset[0:pick_size, :, :, :] test_labels = test_labels[0:pick_size, :] basic_hypers = { 'batch_size': 10, 'patch_size': 10, 'depth': 10, 'num_hidden': 10, 'layer_sum': 3, 'starter_learning_rate': 0.1 } if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 print('=' * 80) print(basic_hypers) for _ in range(200): random_hypers = { 'batch_size': basic_hypers['batch_size'] + random.randint(-9, 30), 'patch_size': basic_hypers['patch_size'] + random.randint(-5, 15), 'depth': basic_hypers['depth'] + random.randint(-9, 10), 'num_hidden': basic_hypers['num_hidden'] * random.randint(1, 10), 'layer_sum': basic_hypers['layer_sum'] + random.randint(-1, 2), 'starter_learning_rate': basic_hypers['starter_learning_rate'] * random.uniform(0, 5) } # if basic_hypers['batch_size'] < 10: # basic_hypers['batch_size'] = 10 if random_hypers['patch_size'] > 28: random_hypers['patch_size'] = 28 print('=' * 80) print(random_hypers) stride_params = [[1, 2, 2, 1] for _ in range(random_hypers['layer_sum'])] hps, loss_es = conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, random_hypers, stride_params) file_helper.write('hps', str(hps)) file_helper.write('losses', str(loss_es))
def fit_better(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0: pick_size, :, :, :] valid_labels = valid_labels[0: pick_size, :] test_dataset = test_dataset[0: pick_size, :, :, :] test_labels = test_labels[0: pick_size, :] basic_hypers = { 'batch_size': 10, 'patch_size': 10, 'depth': 10, 'num_hidden': 10, 'layer_sum': 3, 'starter_learning_rate': 0.1 } if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 if basic_hypers['layer_sum'] > 3: basic_hypers['layer_sum'] = 3 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] better_hps = conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params) while valid_hp(better_hps): basic_hypers = { 'batch_size': better_hps[0], 'patch_size': better_hps[4], 'depth': better_hps[1], 'num_hidden': better_hps[2], 'layer_sum': better_hps[3], 'starter_learning_rate': better_hps[5] } # if basic_hypers['batch_size'] < 10: # basic_hypers['batch_size'] = 10 if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 if basic_hypers['layer_sum'] > 3: basic_hypers['layer_sum'] = 3 if basic_hypers['patch_size'] <= basic_hypers['layer_sum']: basic_hypers['patch_size'] = basic_hypers['layer_sum'] print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] better_hps = conv_train( train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params) else: print('can not find better hypers')
def fit_predict(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0:pick_size, :, :, :] valid_labels = valid_labels[0:pick_size, :] test_dataset = test_dataset[0:pick_size, :, :, :] test_labels = test_labels[0:pick_size, :] basic_hypers = { 'batch_size': 10, 'patch_size': 10, 'depth': 10, 'num_hidden': 10, 'layer_sum': 3 } while (True): basic_hypers['batch_size'] = random.randint( basic_hypers['batch_size'] / 2, basic_hypers['batch_size'] * 2) basic_hypers['patch_size'] = random.randint( basic_hypers['patch_size'] / 2, basic_hypers['patch_size'] * 2) basic_hypers['depth'] = random.randint(basic_hypers['depth'] / 2, basic_hypers['depth'] * 2) basic_hypers['num_hidden'] = random.randint( basic_hypers['num_hidden'] / 2, basic_hypers['num_hidden'] * 2) basic_hypers['layer_sum'] = random.randint( basic_hypers['layer_sum'] / 2, basic_hypers['layer_sum'] * 2) if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params, lrd=True)
def fit_better(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0: pick_size, :, :, :] valid_labels = valid_labels[0: pick_size, :] test_dataset = test_dataset[0: pick_size, :, :, :] test_labels = test_labels[0: pick_size, :] basic_hypers = { 'batch_size': 10, 'patch_size': 10, 'depth': 10, 'num_hidden': 10, 'layer_sum': 3 } if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] ret, better_hps = conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params, lrd=True) while ret and valid_hp(better_hps): basic_hypers = { 'batch_size': better_hps[0], 'patch_size': better_hps[4], 'depth': better_hps[1], 'num_hidden': better_hps[2], 'layer_sum': better_hps[3] } # if basic_hypers['batch_size'] < 10: # basic_hypers['batch_size'] = 10 if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] ret, better_hps = conv_train( train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params, lrd=True) else: print('can not find better hypers')
def hp_train(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0: pick_size, :, :, :] valid_labels = valid_labels[0: pick_size, :] test_dataset = test_dataset[0: pick_size, :, :, :] test_labels = test_labels[0: pick_size, :] basic_hypers = { 'batch_size': 32, 'patch_size': 5, 'depth': 16, 'num_hidden': 64, 'layer_sum': 2 } stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params, drop=True, lrd=False)
def fit_better(): image_size = 28 num_labels = 10 train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels = \ format_mnist() pick_size = 2048 valid_dataset = valid_dataset[0:pick_size, :, :, :] valid_labels = valid_labels[0:pick_size, :] test_dataset = test_dataset[0:pick_size, :, :, :] test_labels = test_labels[0:pick_size, :] basic_hypers = { 'batch_size': 10, 'patch_size': 10, 'depth': 10, 'num_hidden': 10, 'layer_sum': 3 } if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] ret, better_hps = conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params, lrd=True) while ret and valid_hp(better_hps): basic_hypers = { 'batch_size': better_hps[0], 'patch_size': better_hps[4], 'depth': better_hps[1], 'num_hidden': better_hps[2], 'layer_sum': better_hps[3] } # if basic_hypers['batch_size'] < 10: # basic_hypers['batch_size'] = 10 if basic_hypers['patch_size'] > 28: basic_hypers['patch_size'] = 28 print('=' * 80) print(basic_hypers) stride_params = [[1, 2, 2, 1] for _ in range(basic_hypers['layer_sum'])] ret, better_hps = conv_train(train_dataset, train_labels, valid_dataset, valid_labels, test_dataset, test_labels, image_size, num_labels, basic_hypers, stride_params, lrd=True) else: print('can not find better hypers')