Esempio n. 1
0
def main():
    # Prepare dataset(imgs, labels)
    preprocess = Preprocessor('../dataset_test', batch_size=2, labels=['raccoon', 'test'])
    num_classes = len(preprocess.labels)

    imgs, labels = next(preprocess())

    print(imgs.shape)
    print(labels[0].shape)
    print(labels[1].shape)
    print(labels[2].shape)

    # Training
    yolov3 = YoloV3(input_shape=(416, 416, 3), num_classes=num_classes, training=True)
    outputs = yolov3(imgs)

    loss_func1 = YoloLoss(anchors_wh_mask[0], num_classes)
    loss_func2 = YoloLoss(anchors_wh_mask[1], num_classes)
    loss_func3 = YoloLoss(anchors_wh_mask[2], num_classes)

    loss1, loss_breakdown1 = loss_func1(labels[0], outputs[0])
    loss2, loss_breakdown2 = loss_func2(labels[1], outputs[1])
    loss3, loss_breakdown3 = loss_func3(labels[2], outputs[2])

    print(loss1)
    print(loss2)
    print(loss3)
Esempio n. 2
0
def main():
    data_dir = './dataset_test'
    labels = ['raccoon']
    num_classes = len(labels)

    ckpt_dir = './checkpoints'

    lr_rate = 0.0001

    if not os.path.exists(ckpt_dir):
        os.makedirs(ckpt_dir)

    preprocessor = Preprocessor(data_dir=data_dir,
                                output_shape=(416, 416),
                                labels=labels,
                                batch_size=BATCH_SIZE)

    model = YoloV3(input_shape=(416, 416, 3),
                   num_classes=num_classes,
                   training=True)
    loss_objects = [
        YoloLoss(valid_anchors_wh, num_classes)
        for valid_anchors_wh in anchors_wh_mask
    ]

    optimizer = tf.keras.optimizers.Adam(lr=lr_rate)

    lowest_loss = 10000000
    for epoch in range(EPOCH):
        print('{} epoch start! : {}'.format(
            epoch,
            datetime.datetime.now().strftime("%Y.%m.%d %H:%M:%S")))

        epoch_loss = train_one_epoch(model, loss_objects, preprocessor(),
                                     optimizer)

        if lowest_loss > epoch_loss:
            lowest_loss = epoch_loss

            save_path = ckpt_dir + '/cp-{:04d}-{:.4f}.ckpt'.format(
                epoch, lowest_loss)
            model.save_weights(save_path)
            print('Save CKPT _ [loss : {:.4f}, save_path : {}]\n'.format(
                lowest_loss, save_path))
Esempio n. 3
0
import pandas as pd
import numpy as np
import sys
from sklearn.externals import joblib

from utils.preprocess import feature_expand_path
from utils.preprocess import Preprocessor

if __name__ == "__main__":

    preprocessor = Preprocessor()

    # 扩展特征
    if len(sys.argv) == 3:
        feature_expand_path(sys.argv[1], sys.argv[2])
    else:
        print('请指定需要预测的文件的路径以及特征扩展文件的路径')

    test = pd.read_csv(sys.argv[2])

    test_for_pre = test[test['pay_price'] > 0]

    classify_test = test_for_pre.iloc[:, 1:]
    classify_test = preprocessor.time_spliter(classify_test)

    model = joblib.load('model_save/xgb_clf.model')

    model_reg = joblib.load('model_save/xgb_reg.model')

    # 准备测试集
    classify_test = test_for_pre.iloc[:, 1:]