]
        })
    pd.DataFrame({"image_id": df_test.iloc[:, 0].tolist(), "top1": top1, "top2": top2, "top3": top3}).\
        to_csv(df_filename, index=None)

    with open(json_filename, "w") as f:
        f.write(json.dumps(json_list, sort_keys=True))


if __name__ == "__main__":

    # copy all the result file into one folder named result/total_result
    result_dirs = "../result/total_result"
    total_result = []
    predict_gen = get_img_gen()[1].\
        flow_from_directory("../input/test/test", shuffle=False, class_mode=None,
                            target_size=(input_size, input_size), batch_size=batch_size)
    for result_filename in os.listdir(result_dirs):
        total_result.append(np.load(os.path.join(result_dirs,
                                                 result_filename)))
    p_test = total_result[0]
    for i in range(1, len(total_result)):
        p_test += total_result[i]

    p_test /= len(total_result)
    filenames = [x.split("/")[1].split(".")[0] for x in predict_gen.filenames]
    df_result_file = "../result/test/fianl_submission.csv"
    josn_result_file = "../result/test/final_submission.json"
    df_test = pd.DataFrame({"image_id": filenames})

    write_result2df_json(p_test,
예제 #2
0
from utils.file_util import write_result2df_json

input_size = 512
input_channels = 3
batch_size = 15
epochs = 50
kfold = 5

df_train_all = pd.read_csv("../output/train_label.csv")
df_valid = pd.read_csv("../output/validation_label.csv")
train_path = "../input/train"
valid_path = "../input/valid"
model_save_file = "weight/resnet50_with_dropout"
result_save_dir = "../result/resnet50_with_dropout"

train_gen = get_img_gen()


def _predict(result, pred_filenames):
    converted_result = np.zeros_like(
        result)  # real probability after converted
    mapping = pd.read_csv("../input/mapping.txt", header=None,
                          names=["maps"]).maps.tolist()
    print(mapping)
    for j in range(80):
        print(mapping[j])
        converted_result[:, mapping[j]] = result[:, j]
    print(converted_result.shape)
    pd.DataFrame({
        "filename": pred_filenames
    }).to_csv("../result/resnet50_with_dropout/test_filename.csv", index=None)
    print(mapping)
    for j in range(80):
        print(mapping[j])
        converted_result[:, mapping[j]] = result[:, j]
    print(converted_result.shape)
    pd.DataFrame({"filename": pred_filenames}).to_csv("../result/vgg16/test_filename.csv", index=None)
    np.save("../result/vgg16/real_test_2_result.npy", result)

    write_result2df_json(result, df_test=pd.DataFrame({"filename": pred_filenames}),
                         df_filename="../result/vgg16/real_test_2_result.csv",
                         json_filename="../result/vgg16/real_test_2_result.json")

model = load_vgg16(input_size)
adam_optimizer = Adam(lr=1e-4)
sgd_optimizer = SGD(lr=1e-4, momentum=0.9, decay=1e-6)
train_gen = get_img_gen()
y_full_test = []

for fold in range(kfold):
    train_dir = os.path.join("../input/train", "train_fold_" + str(fold))
    valid_dir = os.path.join("../input/valid", "valid_fold_" + str(fold))
    checkpoint_file = os.path.join("weights", "vgg16", "fold_" + str(fold)) + ".hdf5"
    len_train, len_valid = 0, 0
    for dir in os.listdir(train_dir):
        len_train += len(os.listdir(os.path.join(train_dir, dir)))
    for dir in os.listdir(valid_dir):
        len_valid += len(os.listdir(os.path.join(valid_dir, dir)))
    train_model_imagedatagen(
        model=multi_gpu_model(model, gpus=gpus),
        optimizer=sgd_optimizer,
        checkpoint_file=checkpoint_file,