示例#1
0
 def build_optimizer(self, model):
     self._skip_gpu = False
     return build_yellowfin(model, base_learning_rate=0.1)
示例#2
0
 def build_optimizer(self, model):
     self._skip_gpu = False
     return build_yellowfin(model, base_learning_rate=0.1)
示例#3
0
def Train_Model():
    current_folder = os.path.join(os.path.expanduser('~'), 'Development',
                                  'MLResearch', 'datasets', 'blood-cells')
    print(current_folder)
    data_folder = os.path.join(current_folder, 'dataset2-master')
    root_folder = current_folder
    db_missing = False

    if not os.path.exists(data_folder):
        os.makedirs(data_folder)
        print("Your data folder was not found!! This was generated: {}".format(
            data_folder))

    # Look for existing database: lmdb
    if os.path.exists(os.path.join(data_folder, 'blood_cells_train_lmdb')):
        print("lmdb train db found!")
    else:
        db_missing = True

    if os.path.exists(os.path.join(data_folder, 'blood_cells_test_lmdb')):
        print("lmdb test db found!")
    else:
        db_missing = True

    arg_scope = {
        "order": "NCHW",
        "use_cudnn": False,
    }
    train_model = model_helper.ModelHelper(name="inceptionv4_train",
                                           arg_scope=arg_scope)

    reader = train_model.CreateDB(
        "reader",
        db=os.path.join(data_folder, 'blood_cells_train_lmdb'),
        db_type='lmdb',
    )

    data, label = AddImageInput(train_model, reader, 64, 299, 'lmdb', False)

    softmax, loss = inceptionv4.create_Inceptionv4(train_model, data, 4, label)

    accuracy = train_model.Accuracy([softmax, label], "accuracy")

    train_model.AddGradientOperators(["loss"])
    optimizer.build_yellowfin(
        train_model,
        base_learning_rate=.001,
        # allow_lr_injection= True,
    )

    train_model.Print('accuracy', [], to_file=1)
    train_model.Print('loss', [], to_file=1)
    train_model.Print('label', [], to_file=1)
    train_model.Print('softmax', [], to_file=1)

    workspace.RunNetOnce(train_model.param_init_net)
    workspace.CreateNet(train_model.net, overwrite=True)

    # pyplot.figure()
    # d = workspace.FetchBlob('data')
    # # _ = visualize.NCHW.ShowMultiple(data)
    # pyplot.show()

    total_iters = 500
    accuracy = np.zeros(total_iters)
    loss = np.zeros(total_iters)

    for i in range(total_iters):
        workspace.RunNet(train_model.net)
        accuracy[i] = workspace.blobs['accuracy']
        loss[i] = workspace.blobs['loss']

    pyplot.plot(loss, 'b')
    pyplot.plot(accuracy, 'r')
    pyplot.legend(('Loss', 'Accuracy'), loc='upper right')